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:我的代码,为什么总是wrong answer呢?In Reply To:我的代码,为什么总是wrong answer呢? Posted by:tq010or at 2008-06-02 15:41:24 #include <iostream> using namespace std; char str[28][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" }; int value[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}; void fun(char s[],int & size) { size=0; int i=0; int j=0; j++; while(s[i]!='\0') { if(s[i]==' '){s[i]='\0';j++;} i++; } size=j; } int fun1(char s[]) { int i; for(i=0;i<28;i++) { if(strcmp(s,str[i])==0)break; } return value[i]; } int fun2(char s[],char d[],int & size) { char buffer[20]; int j=0; bool a=false; for(int i=0;i<size;i++) { strcpy(buffer,&d[j]); j+=strlen(buffer); j++; if(strcmp(s,buffer)==0){size=size-i-1;a=true;break;}; } if(a) return j; return -1; } int fun4(char s[],int size) { int baiwan=0; int qian=0; int bai=0; int ge=0; int base=0; int size2=size; int pos=fun2("million",&s[base],size); if(pos!=-1) { size2=size2-size-1; baiwan=fun4(&s[base],size2)*1000000; base=base+pos; } size2=size; pos=fun2("thousand",&s[base],size); if(pos!=-1) { size2=size2-size-1; qian=fun4(&s[base],size2)*1000; base=base+pos; } size2=size; pos=fun2("hundred",&s[base],size); if(pos!=-1) { size2=size2-size-1; bai=fun4(&s[base],size2)*100; base=base+pos; } char buffer[20]; for(int i=0;i<size;i++) { strcpy(buffer,&s[base]); ge+=fun1(buffer); base+=strlen(buffer); base++; } return baiwan+qian+bai+ge; } int main() { // freopen("in.txt","r",stdin); char buffer[400]; int size; char * p=NULL; while(1) { // cin.getline(buffer,400); //if(cin.eof())break; if(strcmp(buffer,"")==0)break; fun(buffer,size);//farmat bool a=false; p=buffer; if(strcmp(buffer,"negative")==0){a=true;p=buffer+strlen(buffer)+1;size--;} int result=fun4(p,size); if(a)result=-result; cout<<result<<endl; } return 0; } /* 刚出炉的 我也刚刚编译通过 心情好 送你去研究吧 采用递推的思路 简单好理解 注意它的输入文件末尾以空行结束 也就是以空串结束 就这点不知道浪费了多少人的宝贵年华 TMD */ Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator