题目来源:拼写正确
题目描述
给定一个非负整数 N,你的任务是计算 N 的所有数字的总和,并以英语输出总和的每个数字。
输入格式
共一行,包含一个整数 N。
输出格式
共一行,用英语输出总和的每个数字,单词之间用空格隔开。
数据范围
0≤N≤10100
输入样例:
12345
输出样例:
one five
思路
按照题意,模拟就行了
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
int num=0;
for(auto& c:s) num+=c-'0'; //计算总和
string num_str=to_string(num);
string word[10] = {
"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine",
};
//映射到输出,先输出第一个再输出后面的是为了迎合pat的编译器
cout<<word[num_str[0]-'0'];
for(int i=1;i<num_str.size();i++) cout<<' '<<word[num_str[i]-'0'];
cout<<endl;
return 0;
}