1002 写出这个数 (20 分)
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
作者: CHEN, Yue
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB
#include<iostream>
#include<string>
using namespace std;
int tran_int(char t)
{
int a=t-48;
return a;
}
string tran_pin(int t)
{
if(t==0)
{
return "ling";
}
else if(t==1)
{
return "yi";
}
else if(t==2)
{
return "er";
}
else if(t==3)
{
return "san";
}
else if(t==4)
{
return "si";
}
else if(t==5)
{
return "wu";
}
else if(t==6)
{
return "liu";
}
else if(t==7)
{
return "qi";
}
else if(t==8)
{
return "ba";
}
else if(t==9)
{
return "jiu";
}
}
int main()
{
string a;
string save[10000];
char t;
int result=0;
int s;
int len=0;
cin>>a;
while(!a.empty())
{
result+=tran_int(a[a.size()-1]);
a.erase(a.size()-1,1);
}
while(result!=0)
{
s=result%10;
save[len++]=tran_pin(s);
save[len++]=" ";
result=(result-s)/10;
}
for(int i=len-2;i>=0;i--)
{
cout<<save[i];
}
}