题目:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
思路:切割字符串-求每位到‘0’的距离- 计算和- 提取和的每一位数字- 查表输出拼音
#include<bits/stdc++.h>
using namespace std;
string pingyin[10]={"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
vector<int> outseq;
int main(){
string num;
int sumup= 0;
//input as string
cin >> num;
//count sum
for(int i=0; i<num.size(); i++){
sumup+= num[i]- '0'; //字符到'0‘的距离就是数字大小,求和。
}
//pingyin
while(sumup!=0){
int minBit= sumup%10;//提取数字
sumup= (sumup- sumup%10)/10;
outseq.push_back(minBit); //将数字压入vector
}
//output
for(int i=outseq.size()-1; i>=0; i--){//先压入的(比如说个位)在vector中保存前面,所以要倒序输出。
if(i!=0)
cout << pingyin[outseq[i]]<< " ";
else
cout << pingyin[outseq[i]]; //最后一个输出不带空格
}
return 0;
}