前言

传送门

正文


思路

由题意可知,先使用一个字符串存储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;
}