【1005 20 字符串】 Spell It Right

传送门

题意

给定一个长度为 \(N\) 的十进制数字,计算所有位上的数字之和,并用英文表示

数据范围

\(N\leq 10^{100}\)

题解

  • 建立一个 stringarray,下标和英文对应即可
  • 不存在前导零,不需要处理

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'];
	}

}
posted @ 2021-01-25 13:28  Hyx'  阅读(44)  评论(0)    收藏  举报