HDU 2743 Quicksum
2014-07-24 11:18
225 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2734
思路挺简单的题目却折腾了好久,刚开始想把字符一个一个读进一个数组里,但却对开多大的数组产生了疑惑(后来看大神们的代码,普遍数组都开10000),便想避开,用c++的string直接cin,可是cin读字符串不把空格读进去,这道题需要计算空格。后来想到用gets(),这个函数呀....gets(char),虽然是读入字符,但只要开个字符数组,就能读字符串了...还是学艺不精呀,走了那么多弯路。
还是把自己的代码放上来做个警戒
大神代码
自己感觉这个代码里的a数组挺多余的....strcmp也没必要用....囧
思路挺简单的题目却折腾了好久,刚开始想把字符一个一个读进一个数组里,但却对开多大的数组产生了疑惑(后来看大神们的代码,普遍数组都开10000),便想避开,用c++的string直接cin,可是cin读字符串不把空格读进去,这道题需要计算空格。后来想到用gets(),这个函数呀....gets(char),虽然是读入字符,但只要开个字符数组,就能读字符串了...还是学艺不精呀,走了那么多弯路。
还是把自己的代码放上来做个警戒
#include<stdio.h> #include<string.h> int main() { char s; scanf("%c",&s); while(s!='#') { int i=1,sum=0; while(s!=10) { if(s>='A'&&s<='Z') sum+=(i++)*(s-64); if(s==' ') i++; scanf("%c",&s); } printf("%d\n",sum); scanf("%c",&s); } }
大神代码
#include <string.h> #include <stdio.h> int main() { char str[10000]; int len,i,a[26],sum; for(i = 0;i<26;i++) { a[i] = i+1; } while(gets(str)) { if(strcmp(str,"#") == 0) break; len = strlen(str); sum = 0; for(i = 0;i<len;i++) { if(str[i]>='A' && str[i]<='Z') sum+=(i+1)*a[str[i]-'A']; } printf("%d\n",sum); } return 0; }
自己感觉这个代码里的a数组挺多余的....strcmp也没必要用....囧
相关文章推荐
- HDU 2743 Quicksum
- hdu 2734 Quicksum
- hdu 2734 Quicksum
- hdu 2734(Quicksum)
- hdu——2734——Quicksum
- hdu2734 Quicksum (水)
- HDU 2734 Quicksum [Ad Hoc]
- HDU Quicksum
- hdu2734 Quicksum (水)
- POJ 3094 && HDU 2734 Quicksum(水~)
- HDU 2734 Quicksum【水 字符串】
- HDU 1823 Luck and Love 【二维线段树】
- hdu 4064 Carcassonne
- hdu 3030 Increasing Speed Limits
- hdu 1506 dp思想的应用
- hdu1233 并查集+Kruskal
- Hdu 1285 确定比赛名次
- 杭电 HDU 2717 Catch That Cow
- hdu 2152 Fruit
- HDU 1005 Number Sequence