两个代码都不对。。 1.
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
const int N=1e4+10;
string n;
ll ans[N];
string a[N]={"million","thousand","hundred"};
ll aA[N]={1000000,1000,100};
string A[N]={"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 main(){
int cnt=1;
while(cin>>n){
if(n=="negative")
cout<<"-";
for(int i=0;i<=27;i++)
if(n==A[i]){
if(i<=20)
ans[cnt]+=i;
else
ans[cnt]+=(i-20)*10+20;
goto Next;
}
if(n==a[0])
ans[cnt]*=aA[0];
if(n==a[1])
ans[cnt]*=aA[1];
if(n==a[2])
ans[cnt]*=aA[2];
cnt++;
Next:continue;
}
ll ANS=0;
for(int i=1;i<=3;i++)
ANS+=ans[i];
cout<<ANS;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
string n;
ll ans;
string a[4]={"million","thousand","hundred"};
ll aA[3]={1000000,1000,100};
string A[100]={"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 main(){
int cnt=0;
while(cin>>n){
if(n=="negative")
cout<<"-";
for(int i=0;i<=27;i++)
if(n==A[i]){
if(i<=20)
ans+=i;
else
ans+=(i-20)*10+20;
goto Next;
}
for(int i=0;i<=2;i++)
if(n==a[i])
ans*=aA[i];
Next:continue;
}
cout<<ans;
return 0;
}