题目
给定一个非负整数 N,你的任务是计算 N 的所有数字的总和,并以英语输出总和的每个数字。
输入格式
共一行,包含一个整数 N。
输出格式
共一行,用英语输出总和的每个数字,单词之间用空格隔开。
数据范围
0≤N≤10100
输入样例:
12345
输出样例:
one five

解法:模拟

时间复杂度O(n),空间复杂度O(1)

  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. using namespace std;
  5. typedef long long ll;
  6. string map[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
  7. int main() {
  8. string n;
  9. cin >> n;
  10. ll sum = 0;
  11. for (auto c: n) {
  12. sum += c - '0';
  13. }
  14. string s = to_string(sum);
  15. cout << map[s[0] - '0'];
  16. for (int i = 1; i < s.size(); i++)
  17. cout << " " << map[s[i] - '0'];
  18. return 0;
  19. }