【1005 20 字符串】 Spell It Right
传送门
题意
给定一个长度为 \(N\) 的十进制数字,计算所有位上的数字之和,并用英文表示
数据范围
\(N\leq 10^{100}\)
题解
- 建立一个
string的array,下标和英文对应即可 - 不存在前导零,不需要处理
Code
#include <bits/stdc++.h>
using namespace std;
int main() {
array<string, 10> a = {
"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
};
string num; cin >> num;
int sum = 0;
for (int i = 0; i < num.size(); i++) {
sum += int(num[i] - '0');
}
string res = to_string(sum);
for (int i = 0; i < res.size(); i++) {
if (i != 0) cout << " ";
cout << a[res[i] - '0'];
}
}

浙公网安备 33010602011771号