1.判断负数的情况应该放循环里面,刚开始s是空的。\
2.m应该初值给1,不然会有问题,for循环前面应该特判m=1的情况,想想为什么。\
3.i+=10是什么鬼(雾
by _Sunyubo2012 @ 2024-02-12 17:53:16
AC代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
string a[21]={"stupid fusu","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"};
string b[11]={"stupid xiaofentu","thirty","forty","fifty","sixty","seventy","eighty","ninety"};
int main(){
string s;
long long n=0,m=1,f;
f=1;
while(cin>>s){
if(s=="negative")f=-1;
if(s=="hundred") m*=100;
if(s=="thousand")n+=m*1000,m=0;
if(s=="million") n+=m*1000000,m=0;
if(m==1) m--;
for(int i=1;i<=20;i++) if(s==a[i]) m+=i;
for(int i=1;i<=7;i++) if(s==b[i]) m+=20+i*10;
}
n+=m;
cout<<n*f;
}
```
by _Sunyubo2012 @ 2024-02-12 17:56:10