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。

posted on 2021-09-04 19:23  Atl212  阅读(34)  评论(0)    收藏  举报

导航