1005 Spell It Right (20 point(s))
Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English.
Example:
#include<iostream>
#include<stack>
using namespace std;
string str[] = {
"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine"
};
int main()
{
int ans = 0;
string c;
cin >> c;
for(auto &x : c) {
ans += x - '0';
}
stack<int>s;
do {
s.push(ans%10);
ans /= 10;
} while(ans);
cout << str[s.top()];
s.pop();
while(!s.empty()) {
cout << ' ' << str[s.top()];
s.pop();
}
}
思路:
因为N (≤10100),的 digits 之和小于 1000,所以可以用 int 变量保存,然后再逆序输出 % 10 的数字对应的单词。