题目描述:
给定一个非零的整数 N,加个它的每一位N (N ≤ 10100),用英文单词读出加和的结果。
测试用例
输入:
12345
输出:
one five
分析
题目很简单,由于 N ≤ 10100 所以用字符串接收输入,加和字符串中的每一位,然后用英文单词输出。坑点在 0 上,其他都没什么难的地方
实现
#include<iostream>
#include<string>
using namespace std;
int StrToNum(string NumText) {
int add = 0;
for (int i = 0; i < NumText.length(); i++)
add += (int)(NumText[i] - '0');
return add;
}
void OutputWordByNum(int number) {
string EgWords[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
string temp = "";
string now = "";
int flag = 0;
if (number == 0)
cout << EgWords[number];
else {
while (number) {
flag++;
temp = EgWords[number % 10];
if (flag == 1)
now = temp + now;
else
now = temp + " " + now;
number = number / 10;
}
cout << now;
}
}
int main() {
string enter;
string result[10];
cin >> enter;
OutputWordByNum(StrToNum(enter));
return 0;
}
希望能帮助到你!