代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
char word[32][50]={"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","negative"};
char s[50];
int num=0;
int i,j;
char c;
while(scanf("%s",s)!=EOF)
{
for(j=0;j<32;j++)
if(strcmp(s,word[j])==0)
break;
if(j<=20)
num+=j;
if(j>20&&j<=27)
num+=((j-18)*10);
if(j>27&&j<=30)
{
switch(j)
{
case 28:num=num%100*100+(num/100)*100;break;
case 29:num=num%1000*1000+(num/1000)*1000;break;
case 30:num=num%1000000*1000000+(num/1000000)*1000000;break;
}
}
if(j==31)
cout<<'-';
c=getchar();
if(c=='\n')
{
cout<<num<<endl;
num=0;
}
}
return 0;
}