#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using std::string;
using std::cin;
using std::cout;
using std::vector;
using std::reverse;
// 审题 n不能直接用int,不够用 其次学会如何将一个数的各个位数拆分出来/ %或者-48
int main() {
string pinyin[10] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
string n;
cin >> n;
int sum = 0; //存放各个位数之和
for (char c : n) {
sum += (int)c - 48;
}
//cout << sum;
vector<int> ivec;
int div2 = 1;
while(true) {
int temp = sum / div2;
if (temp == 0)
break;
ivec.push_back(temp % 10);
div2 *= 10;
}
reverse(ivec.begin(), ivec.end());
for (int i = 0; i != ivec.size(); ++i) {
cout << pinyin[ivec[i]];
if (i != ivec.size() - 1) {
cout << " ";
}
}
return 0;
}
PAT 1002. 写出这个数 (20)
最新推荐文章于 2022-05-15 21:42:56 发布