1477. 拼写正确
原题传送:AcWing 1477. 拼写正确
给定一个非负整数 N N N,你的任务是计算 N N N 的所有数字的总和,并以英语输出总和的每个数字。
输入格式
共一行,包含一个整数 N N N。
输出格式
共一行,用英语输出总和的每个数字,单词之间用空格隔开。
数据范围
0 ≤ N ≤ 1 0 100 0 \le N \le 10^{100} 0≤N≤10100
输入样例:
12345
输出样例:
one five
思路
字符串读入,遍历求和,然后用map把每位对应的英文输出。
题解
#include <bits/stdc++.h>
using namespace std;
int sum = 0;
string s, res;
map<char, string> m = {
{'0',"zero"}, {'1',"one"}, {'2',"two"}, {'3',"three"}, {'4',"four"},
{'5',"five"}, {'6',"six"}, {'7',"seven"}, {'8',"eight"}, {'9',"nine"}
};
int main()
{
cin >> s;
for(int i = 0; i < s.length(); i++)
{
sum += s[i] - '0';
}
res = to_string(sum);
cout << m[res[0]];
for(int i = 1; i < res.length(); i++)
{
cout << " " << m[res[i]];
}
return 0;
}