题目描述
给定一个非负整数 N,你的任务是计算 N 的所有数字的总和,并以英语输出总和的每个数字。
输入格式
共一行,用英语输出总和的每个数字,单词之间用空格隔开。
样例
输入:
12345
输出:
one five
算法1
算法分析:
1、求出每⼀位相加的和sum
sum+=s[i]-‘0’
2、将sum转换为string s
3、将string s的每⼀位输出对应的英⽂读⾳
注意:此题需要处理单词尾空格的问题。
处理方法:先处理输出和的第一个单词,然后在以一个空格一个单词的形式输出和的剩余单词,即可处理单词尾空格的问题。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
int num=0;
//将字符串转换为数字求和
for(int i=0;i<a.size();i++)
{ num+=a[i]-'0'; }
//将其和转化为字符串s
string s=to_string(num);
string arr[10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
//将字符串s的每一位转化成其相应的读音
cout<<arr[s[0]-'0']; //先处理第一位,在输出一个空格一个单词,最后位置就无空格
for(int i=1;i<s.size();i++) cout<<' '<<arr[s[i]-'0'];
}