| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我验证了很多数据都是对的 不知哪还有错 晕死了 大牛能给点数据检验一下吗#include<iostream>
#define m 200
using namespace std;
char a[10][10]={"zero","one", "two","three","four","five","six","seven","eight","nine"},
b[10][10]={"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"},
c[10][10]={"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"},
d[10][10]={"negative","hundred","thousand","million"};
char s[m],s1[m];
int n[m],q,k,w,y,t,sum=0;
int main()
{
#ifndef a
freopen("1\\in.txt","r",stdin);
freopen("1\\out.txt","w",stdout);
#endif
while(cin.getline(s,m))
{
y=1;
sum=0;
memset(n,0,sizeof(n));
if(0 == strcmp(s,"")) break;
for(q=0;'\0' != s[q];q++)
{
if(s[q]==32) continue;
s1[k++]=s[q];
if(32 ==s[q+1] || '\0'==s[q+1])
{
s1[k]='\0';
for(w=0;;w++)
{
if(!strcmp(s1,d[w]))
{
n[0]=-1;
break;
}
if(!strcmp(s1,a[w]))
{
n[y++]+=w;
break;
}
if(!strcmp(s1,b[w]))
{
n[y++]+=(10+w);
break;
}
if(!strcmp(s1,c[w]))
{
n[y++]+=(w+2)*10;
n[y]+=n[y-1];
n[y-1]=0;
break;
}
if(!strcmp(s1,d[1]))
{
n[y]+=n[y-1]*100;
n[y-1]=0;
n[++y]+=n[y-1];
n[y-1]=0;
break;
}
if(!strcmp(s1,d[2]))
{
if(n[y])
{
if(n[y]<1000)
n[y]*=1000;
}
else
{
n[y]+=n[y-1]*1000;
n[y-1]=0;
y++;
}
break;
}
if(!strcmp(s1,d[3]))
{
n[y]+=n[y-1]*1000000;
n[y-1]=0;
y++;
break;
}
}
k=0;
}
}
for(t=1; t<y+1;t++)
sum+=n[t];
if(n[0]==-1)
sum*=(-1);
cout<<sum<<endl;
}
#ifndef a
fclose(stdin);
fclose(stdout);
#endif
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator