题意:给一个100位的数字串,给出数字串上各数字和的英文弱智版本翻译。
什么叫弱智版本翻译,就是 “15” 只要翻译 “one five”就可以了。。。。。
难点: 100位的数字串,全是9那和就是900最大了,最多只要输出3个英文单词。大一级别的题目,毫无难点的手速题。
看来PAT不是按照题目难度排序。。。
Code:
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define inf 109
#define INF 0x3f3f3f3f
#define loop(x,y,z) for(x=y;x<z;x++)
char s[inf];
int len,num[5];
string words[11]={"zero","one","two","three","four",
"five","six","seven","eight","nine"};
void Input()
{
cin>>s;
}
void Solve()
{
len=strlen(s);//字符串长度
int i,sum=0;
loop(i,0,len)sum+=s[i]-48;
len=0;//输出长度
while(sum!=0)
{
num[len++]=sum%10;
sum/=10;
}
}
void Output()
{
int i;
for(i=len-1;i>0;i--)//存的时候是倒序的,个位在前,所以要倒序输出
cout<<words[num[i]]<<" ";
cout<<words[num[i]]<<endl;
}
int main()
{
Input();
Solve();
Output();
return 0;
}