题目链接及完整代码:
链接:
完整代码:
#include <iostream>
using namespace std;
int main()
{
string str;//题目给的数据范围到了10^100,所以我们选择用字符串来存储。
cin >> str;
int a[110], j = 0;
long long sum = 0;
string b[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};//把每个数对应的英文先用数组存起来。
for(int i = 0; i < str.size(); i ++)//遍历字符串
sum += str[i] - '0';//求每一位上的数字之和。
while(sum)//遍历总和的每一位
{
int ge = sum % 10;//取个位
// cout << ge << endl;
sum /= 10;
a[j ++] = ge;//将每一位数存储到a数组当中
}
for(int i = j - 1; i >= 0; i --)//倒序遍历a数组
cout << b[a[i]] << " ";//将a数组的值对应的英文输出。
return 0;
}
解题思路:
1. 把输入的数据的每一位之和存储到sum当中。
2.将sum当中的每一位倒序存储到a数组中。
3.倒序输出数组a。