题目
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100 。
输出格式
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例
1234567890987654321123456789
输出样例
yi san wu
C++代码
#include <iostream>
#include <cstring>
using namespace std;
//输出函数output,将数字化为拼音
void output(int n){
if(n==1) cout<<"yi";
else if(n==2) cout<<"er";
else if(n==3) cout<<"san";
else if(n==4) cout<<"si";
else if(n==5) cout<<"wu";
else if(n==6) cout<<"liu";
else if(n==7) cout<<"qi";
else if(n==8) cout<<"ba";
else if(n==9) cout<<"jiu";
else cout<<"ling";
}
int main()
{
string n;
cin>>n;
int sum,len,i,j;
sum = 0;
len = n.size();
for(i=0;i<len;i++){
//ASCII码转化为数字
sum=sum+n[i]-48;
}
int s[len];
for(j=0;sum!=0;j++){
s[j] = sum%10;
sum = sum/10;
}
//输出
for(i=j-1;i>0;i--){
output(s[i]);
cout<<" ";
}
output(s[0]);
cout<<endl;
}
结果
测试点 | 耗时 | 内存 |
---|---|---|
0 | 4 ms | 328KB |
1 | 5 ms | 320KB |
2 | 4 ms | 324KB |
3 | 4 ms | 320KB |
4 | 6 ms | 316KB |
5 | 4 ms | 324KB |