Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
咱也来贴一个短代码啦 \(^o^)/~之前错了几次,后来加上(LEN=strlen(w))!=0就AC了,不容易啊 Source Code Problem: 2121 User: 1010321112 Memory: 172K Time: 16MS Language: C++ Result: Accepted Source Code #include<iostream> using namespace std; #include<string.h> int main() { int a[3],LEN,len,m,i,k; long sum; char w[300],s[10]; char word[28][10]={"zero","one","two","three","four","five","six","seven" ,"eight","nine","ten","eleven","twelve","thirteen","fourteen" ,"fifteen","sixteen","seventeen","eighteen","nineteen","twenty" ,"thirty","forty","fifty","sixty","seventy","eighty","ninety"}; int num[28]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ,17,18,19,20,30,40,50,60,70,80,90}; while(gets(w),(LEN=strlen(w))!=0) { sum=m=0; a[0]=a[1]=a[2]=0; sscanf(w,"%s",s); while(1) { if(!strcmp(s,"negative")) putchar('-'); else if(!strcmp(s,"million")) a[m++]*=1000000; else if(!strcmp(s,"thousand")) a[m++]*=1000; else if(!strcmp(s,"hundred")) a[m]*=100; else for(i=0;i<28;i++) if(!strcmp(s,word[i])) { a[m]+=num[i]; break; } len=strlen(s); sum+=len+1; sscanf(w,"%*s%s",s); if(sum>=LEN) break; w[sum-1]='A'; ///将空格变为字母 } sum=a[0]+a[1]+a[2]; printf("%d\n",sum); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator