虽然很简单,但这模拟写的我好累呀! #include <iostream> #include <string> using namespace std; int main() { string s,t; int p,r,ans; while (getline(cin,s) && s!="") { ans=0; r=0; do { p=s.find(" "); t=s.substr(0,p); s=s.substr(p+1); if (t=="negative") cout << "-"; else if (t=="million") { ans+=r*1000000; r=0; } else if (t=="thousand") { ans+=r*1000; r=0; } else if (t=="hundred") r*=100; else if (t=="zero") r=0; else if (t=="one") r+=1; else if (t=="two") r+=2; else if (t=="three") r+=3; else if (t=="four") r+=4; else if (t=="five") r+=5; else if (t=="six") r+=6; else if (t=="seven") r+=7; else if (t=="eight") r+=8; else if (t=="nine") r+=9; else if (t=="ten") r+=10; else if (t=="eleven") r+=11; else if (t=="twelve") r+=12; else if (t=="thirteen") r+=13; else if (t=="fourteen") r+=14; else if (t=="fifteen") r+=15; else if (t=="sixteen") r+=16; else if (t=="seventeen") r+=17; else if (t=="eighteen") r+=18; else if (t=="nineteen") r+=19; else if (t=="twenty") r+=20; else if (t=="thirty") r+=30; else if (t=="forty") r+=40; else if (t=="fifty") r+=50; else if (t=="sixty") r+=60; else if (t=="seventy") r+=70; else if (t=="eighty") r+=80; else if (t=="ninety") r+=90; }while (p!=-1); cout << ans+r << endl; } //system("pause"); return 0; }