目录
1,题目描述
2, 思路
3,代码
1,题目描述
Sample Input:
12345
Sample Output:
one five
将输入的一个数字的各位求和,并将结果的各位用英文输出;(输入的数N<10^100,范围较大)
2, 思路
由于输入的数较大,故将其作为字符串处理;
用int型的sum存储各位的累加和,并将其转换为string型的output;
将output各位与字符0相减,得出对应的英文,并输出;
3,代码
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
using namespace std;
int main(){
//#ifdef ONLINE_JUDGE
//#else
// freopen("1.txt", "r", stdin);
//#endif
string digits[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
string input;//输入的数已超出int的表示范围 故直接采用string
int sum = 0;
cin>>input;
for(int i = 0; i < input.length(); i++){
sum += input[i] - '0';
}
string output = to_string(sum);//部分编译器可能无法通过 但在PAT上可以提交
cout<<digits[output[0] - '0'];
for(int i = 1 ; i < output.length(); i++){
cout<<' '<<digits[output[i] - '0'];
}
return 0;
}