题目描述
给定一个非负整数 �N,你的任务是计算 �N 的所有数字的总和,并以英语输出总和的每个数字。
输入格式
共一行,包含一个整数 �N,整数 �N 可能会出现前导0,比如:00123,对应的整数是123。
输出格式
共一行,用英语输出总和的每个数字,单词之间用空格隔开。
样例
输入数据 1
12345
输出数据 1
one five
数据范围
0≤�≤101000≤N≤10100
解题思路
首先将给出的数据加起来,然后将相加得到的数除以十得到十位上的数,再将相加所得的数对十除余得到个位上的数,若相加所得为三位数,就对百除得到百位上的数,最后输出各位数的英文形式。
代码:
#include<iostream>
using namespace std;
int arr[110];
int main(){
string s;cin>>s;
int sum=0;
for(int i=0;i<s.length();i++){
if(s[i]-'0'>=0&&s[i]-'9'<=0) {
sum+=(s[i]-'0');
}
}
int cnt=0;
while(sum){
arr[cnt++]=sum%10;
sum/=10;
}
for(int i=cnt-1;i>=0;i--){
if(arr[i]==0) cout<<"zero ";
else
if(arr[i]==1) cout<<"one ";
else
if(arr[i]==2) cout<<"two ";
else
if(arr[i]==3) cout<<"three ";
else
if(arr[i]==4) cout<<"four ";
else
if(arr[i]==5) cout<<"five ";
else
if(arr[i]==6) cout<<"six ";
Else
if(arr[i]==7) cout<<"seven ";
else
if(arr[i]==8) cout<<"eight ";
else
if(arr[i]==9) cout<<"nine ";
}
return 0;
}