题目
给定一个非负整数 N,你的任务是计算 N 的所有数字的总和,并以英语输出总和的每个数字。
输入格式
共一行,包含一个整数 N。
输出格式
共一行,用英语输出总和的每个数字,单词之间用空格隔开。
数据范围
0≤N≤10100
输入样例:
12345
输出样例:
one five
解法:模拟
时间复杂度O(n),空间复杂度O(1)
#include <iostream>
#include <vector>
#include <string>
using namespace std;
typedef long long ll;
string map[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int main() {
string n;
cin >> n;
ll sum = 0;
for (auto c: n) {
sum += c - '0';
}
string s = to_string(sum);
cout << map[s[0] - '0'];
for (int i = 1; i < s.size(); i++)
cout << " " << map[s[i] - '0'];
return 0;
}