PAT B1002 写出这个数
前言
正文
思路
由题意可知,先使用一个字符串存储n,遍历字符串得到各位数字之和 sum
(涉及到字符数字转整型数字,可参考PAT B1021 个位数统计)
参考题解
#include<iostream>
#include<string>
using namespace std;
/*
由题意可知,先使用一个字符串存储n,遍历字符串得到各位数字之和 sum
,将每个数字的汉语拼音存放到一个字符串数组map中,注意拼音别写错了,再将sum
的每一位数字存储至res数组中,最后逆序输出映射的字符串即可
*/
int main(){
string n,map[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int sum=0,res[100],num=0;//sum表示各位数字之和,num表示sum的位数
cin>>n;
for(int i=0;i<n.size();i++){
sum+=(n[i]-'0');
}
do{//除基取余法获得每一位数字
res[num++]=sum%10;
sum/=10;
}while(sum!=0);
for(int i=num-1;i>=0;i--){
if(i==num-1)cout<<map[res[i]];
else cout<<" "<<map[res[i]];
}
cout<<endl;
return 0;
}