版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(4358)
>
虫友互识
(736)
>
文献求助
(458)
>
导师招生
(275)
>
考博
(189)
>
休闲灌水
(136)
>
硕博家园
(123)
>
博后之家
(108)
>
招聘信息布告栏
(104)
>
论文投稿
(43)
>
SciFinder/Reaxys
(38)
>
绿色求助(高悬赏)
(32)
>
基金申请
(29)
>
论文道贺祈福
(26)
>
教师之家
(23)
>
外文书籍求助
(20)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
其它
»
Euler 工程 第廿二题: 姓的总分
2
1/1
返回列表
查看: 1525 | 回复: 13
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
本帖产生 2 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
wangww2011
木虫
(著名写手)
程序强帖: 13
应助: 11
(小学生)
金币: 4023.1
散金: 2709
红花: 18
沙发: 1
帖子: 1915
在线: 1537.1小时
虫号: 772953
注册: 2009-05-17
性别: GG
专业: 凝聚态物性 II :电子结构
★ ★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖
xzhdty(金币+2): 谢谢交流 2011-06-05 14:21:41
余泽成(程序强帖+1): 鼓励交流! 2011-06-18 15:55:16
话说perl版的真是简洁
还是用C写吧,虽然看着挺不爽的
CODE:
#include
#include
#include
#define SIZE 50000
inline int cmp(const void *p1,const void *p2)
{
return strcmp((char *)p1,(char *)p2);
}
inline int count(const char *p){
int i=0,res=0;
while(p[i]!='\0')res+=p[i++]-64;
return res;
}
long euler22(){
int i=0,length;
FILE *fp=fopen("names.txt", "r");
if(fp == 0) return -1;
char str[SIZE];
if (NULL == fgets(str, SIZE, fp)) {
return -1;
}
fclose(fp);
char *delims="\",";
char *p=strtok(str,delims);
char names[6000][15];
while(p!=NULL){
strcpy(names[i++],p);
p=strtok(NULL,delims);
}
length=i;
qsort(names,length,sizeof(names[0]),cmp);
long sum=0;
for(i=0;i
sum+=(i+1)*count(names[i]);
return sum;
}
int main(void){
printf("%ld\n",euler22());
return 0;
}
赞
一下
(3人)
回复此楼
4楼
2011-06-05 13:42:07
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
智能机器人
Robot
(super robot)
我们都爱小木虫
找到一些相关的精华帖子,希望有用哦~
Project Euler 50 欧拉工程 50 题
已经有12人回复
Project Euler 48 欧拉工程 48 题
已经有30人回复
Project Euler 45 欧拉工程 45 题
已经有7人回复
Euler 工程 第廿九题:有多少不同的项?
已经有30人回复
Euler 工程 第廿六题:最长的循环节
已经有9人回复
Euler 工程 第廿四题:全排列的第100万项
已经有19人回复
Euler 工程第十六题:2的1000次方的各项和
已经有14人回复
Euler 工程 第十五题:从左上角到右下角有多少条路?
已经有5人回复
Euler 工程 第14题:找最长的数列
已经有9人回复
Euler Project Q13 欧拉工程第十三题
已经有20人回复
Euler Project Q12 欧拉工程第十二题
已经有23人回复
Euler 工程 第十一题:相邻元素乘积最大
已经有10人回复
Euler Project Q7. 欧拉工程第七题
已经有14人回复
Euler 工程 第六题:平方和与和的平方差多少?
已经有5人回复
Euler 工程 第二题:Fibonacci数列中小于4百万的偶数的和
已经有8人回复
点击这里搜索更多相关资源
科研从小木虫开始,人人为我,我为人人
qinghuoly
木虫
(正式写手)
程序强帖: 1
应助: 140
(高中生)
金币: 4753.1
红花: 10
帖子: 885
在线: 918.1小时
虫号: 966225
注册: 2010-03-09
性别: GG
专业: 金属有机化学
★ ★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖
jjdg(金币+2): 感谢参与 2011-06-27 03:02:22
jjdg(程序强帖+1): 辛苦了 2011-06-27 03:02:39
scheme解法一:
[define [ans22]
[define l [read-line [open-input-file "22.txt"]]] ;读取文件
[define namelist
[with-input-from-string
[regexp-replace* "," l " "] ;替换逗号为空格
[lambda [] [let loop [[l '[]] [r [read]]]
[if [eof-object? r] l
[loop [cons r l][read]]]]]]] ;读取为列表
[define [conv str] ;将字符串转化为数值和
[apply +
[map [lambda [c]
[- [char->integer c]
64]]
[string->list str]]]]
[define [ex ls sum n ]
[if [null? ls]
sum
[ex [cdr ls]
[+ sum
[* n
[conv [car ls]]]]
[add1 n]]]]
[ex [sort namelist string] 0 1]]
> [time [ans22]]
cpu time: 1531 real time: 1531 gc time: 188
871198282
scheme解法二:
[define names-list '[
"MARY"
"PATRICIA"
"LINDA"
"BARBARA"
.......
"ALONSO" ]]
[define [conv str]
[apply +
[map [lambda [c]
[- [char->integer c]
64]]
[string->list str]]]]
[define [ex ls sum n ]
[if [null? ls]
sum
[ex [cdr ls]
[+ sum
[* n
[conv [car ls]]]]
[add1 n]]]]
[ex [sort names-list string] 0 1]
;define the data in source code will be faster.
> [time [ans22]]
cpu time: 47 real time: 47 gc time: 0
871198282
赞
一下
(3人)
回复此楼
天地为帐,日月为灯,风雷为号角,云虹为旗令,山川为阵图,草木为兵卒。运阴阳五行为谋,策古今兴替为略。
12楼
2011-06-26 01:42:04
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
holmescn
的主题更新
2
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定