首页 > 代码库 > HDU 2743 Quicksum
HDU 2743 Quicksum
http://acm.hdu.edu.cn/showproblem.php?pid=2734
思路挺简单的题目却折腾了好久,刚开始想把字符一个一个读进一个数组里,但却对开多大的数组产生了疑惑(后来看大神们的代码,普遍数组都开10000),便想避开,用c++的string直接cin,可是cin读字符串不把空格读进去,这道题需要计算空格。后来想到用gets(),这个函数呀....gets(char),虽然是读入字符,但只要开个字符数组,就能读字符串了...还是学艺不精呀,走了那么多弯路。
还是把自己的代码放上来做个警戒
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 char s; 6 scanf("%c",&s); 7 while(s!=‘#‘) 8 { 9 int i=1,sum=0;10 while(s!=10)11 { 12 if(s>=‘A‘&&s<=‘Z‘) 13 sum+=(i++)*(s-64); 14 if(s==‘ ‘)15 i++; 16 scanf("%c",&s); 17 }18 printf("%d\n",sum);19 scanf("%c",&s); 20 } 21 }
大神代码
1 #include <string.h> 2 #include <stdio.h> 3 4 int main() 5 { 6 char str[10000]; 7 int len,i,a[26],sum; 8 for(i = 0;i<26;i++) 9 {10 a[i] = i+1;11 }12 while(gets(str))13 {14 if(strcmp(str,"#") == 0)15 break;16 len = strlen(str);17 sum = 0;18 for(i = 0;i<len;i++)19 {20 if(str[i]>=‘A‘ && str[i]<=‘Z‘)21 sum+=(i+1)*a[str[i]-‘A‘];22 }23 printf("%d\n",sum);24 }25 26 return 0;27 }
自己感觉这个代码里的a数组挺多余的....strcmp也没必要用....囧
HDU 2743 Quicksum
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。