求助52

P2108 学英语

改了一下,照样 ```cpp #include <iostream> using namespace std; int main() { string s[]={"negative","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"}; bool f=false;long long ss=0,nows=0,ff=1; long long i; string in1; cin>>in1; if(in1==s[0]) ff=-1; else {for (i=1;i<21;i++) if (s[i]==in1) {f=true;nows+=(i-1);break;} if (!f) for (i=21;i<29;i++) if (s[i]==in1) {f=true;nows=20+(i-21)*10;break;} } if (!f) {cin>>in1;for (i=1;i<=20;i++) if (s[i]==in1) {f=true;nows+=(i-1);break;} if (!f) for (i=21;i<=28;i++) if (s[i]==in1) {f=true;nows=20+(i-21)*10;break;} } while (cin>>in1) { f=false; if (!f) for (i=1;i<=20;i++) if (s[i]==in1) {f=true;nows+=(i-1);break;} if (!f) for (i=21;i<=28;i++) if (s[i]==in1) {f=true;nows+=(20+(i-21)*10);break;} if (!f) for (i=29;i<=31;i++) if (s[i]==in1) {f=true;ss+=(nows*(i==29?100:(i==30?1000:1000000)));nows=0;break;} } cout<<ff*(ss+nows)<<endl; return 0; } ```
by a___ @ 2017-03-18 22:39:10


20~46 没过 23 34 45除外
by a___ @ 2017-03-18 22:41:51


|