题目描述
给定一个非负整数 N,你的任务是计算 N 的所有数字的总和,并以英语输出总和的每个数字。
输入格式
共一行,包含一个整数 N,整数 N 可能会出现前导0,比如:00123,对应的整数是123。
输出格式
共一行,用英语输出总和的每个数字,单词之间用空格隔开。
样例
输入数据 1
12345
输出数据 1
one five
数据范围
0≤N≤10的100次方
题解
因为N的数据范围很大,得用字符串储存,然后分割字符串,使他们相加得sum;
再利用取余求sum的每个数字,用a数组储存
创建一个字符串宿舍数组b[10],储存零到九的英文单词,并对应输出
#include<bits/stdc++.h>
using namespace std;
int i,sum,a[1001];
string n,b[10]={"zero","one","two","three","four",
"five","six","seven","eight","nine"};
int main()
{
cin>>n;
if(n=="0"){
cout << "zero";
}
for(int k=0;k<n.size();k++){
sum=sum+(n[k]-'0');
}
while(sum){
a[i]=sum%10;
sum=sum/10;
i++;
}
for(int j=i-1;j>=0;j--){
cout<<b[a[j]]<<" ";
}
return 0;
}