1002 写出这个数 (20 point(s))
#include <bits/stdc++.h>
using namespace std;
int main() {
int sum = 0;
stack<int> s;
string str,
pingyin[10]{"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
cin >> str;
// yi san wu 1 3 5
for(auto s: str)
sum += s - '0';
// 逆转和
while(sum){
s.push(sum % 10);
sum /= 10;
}
// 末尾无空行
int first = 0;
while(!s.empty()){
cout << (first++ ? " " : "") << pingyin[s.top()];
s.pop();
}
}
当时忘了一个 0 = 零(ling),因为看到“正整数 n” 以为是不包括 0 的,结果卡了一个测试点。但实际上这个 0 不一定指的是 n,因为题目要求的是输出每一位上面的数字,可能十位有一个 0 可能百位有一个 0 等等。总之,最后补上才全部AC。
浙公网安备 33010602011771号