1002 写出这个数 (20)
时间限制
400 ms
内存限制
65536 kB
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
解答:
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
using namespace std;
const int maxn = 1000+5;
char s[maxn];
string infos[11]={"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu", "shi"};
int main(){
memset(s, 0, sizeof(s));
cin>>s;
int j, sum=0;
int len=strlen(s);
for(int i=0;i<len;i++){
s[i]-='0';
sum+=s[i];
}
vector<string> res;
res.clear();
int t=0;
j=0;
while(sum){
t=sum%10;
res.push_back(infos[t]);
sum/=10;
}
int s=res.size();
for(int i=s-1;i>=0;i--){
if(i==0) cout<<res[i]<<endl;
else cout<<res[i]<<" ";
}
return 0;
}