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 |
Re:各位大牛们帮我看看吧,WA了8次了,实在不知道错在哪里…… 空行也没有0In Reply To:各位大牛们帮我看看吧,WA了8次了,实在不知道错在哪里…… 空行也没有0 Posted by:Asp at 2006-10-28 09:45:01 > /* > six > negative seven hundred twenty nine > one million one hundred one > eight hundred fourteen thousand twenty two > one hundred ninety thousand million > one million one hundred eleven thousand one hundred eleven > nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine > negative nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine > zero > negative zero > one thousand thousand > one thousand hundred > */ > > #include < stdio.h > > #include < string.h > > > char nums[32][20]= > { > "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", > "hundred","thousand","million","negative" > }; > > __int64 numn(char *s) > { > __int64 i=0; > while(strcmp(s,nums[i])!=0&&i<31) i++; > if(i==31) return -1; > if(20<i&&i<28) return (i-18)*10; > return i;////////////////没有return 28..30啊...而且gets好象也不行的...用cin.getline()... > } > > int main() > { > char s[1000]={0},*s1; > __int64 resmil,reshun,restho,isneg,n,restemp; > while(1) > { > gets(s); > if(strcmp(s,"")==0) break; > resmil=reshun=restho=isneg=n=restemp=0; > s1=strtok(s," "); > while(s1) > { > n=numn(s1); > if(n==-1) isneg=1; > else if(n==28) {if(reshun) reshun*=100;reshun+=restemp;restemp=0;} > else if(n==29) {if(restho) restho*=1000;restho+=restemp+reshun*100;restemp=reshun=0;} > else if(n==30) {if(resmil) resmil*=1000000;resmil+=restemp+restho*1000+reshun*100;restemp=reshun=restho=0;} > else > restemp+=n; > s1=strtok(NULL," "); > } > if(isneg&&resmil*1000000+restho*1000+reshun*100+restemp) putchar('-'); > printf("%I64d\n",resmil*1000000+restho*1000+reshun*100+restemp); > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator