题目链接:戳这里
题意:
输入一个数x,设该数每位之和为y。把y上面的每位数字用英语输出。
解题思路:
模拟。
代码如下:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <map>
#include <stack>
#include <string>
#include <queue>
#include <algorithm>
#include <cmath>
#include <set>
using namespace std;
const int maxn = 1e2 + 10;
const int maxe = 3e4+10;
const int inf = 0x3f3f3f3f;
typedef long long ll;
char st[maxn];
string toSt(int x) {
if(x == 0) return "zero";
if(x == 1) return "one";
if(x == 2) return "two";
if(x == 3) return "three";
if(x == 4) return "four";
if(x == 5) return "five";
if(x == 6) return "six";
if(x == 7) return "seven";
if(x == 8) return "eight";
if(x == 9) return "nine";
}
void dfs(int x) {
if(x > 0) {
dfs(x/10);
cout<<toSt(x%10)<<" ";
}
}
int main() {
scanf("%s", st);
int len = strlen(st);
int sum = 0;
for(int i = 0; i < len; ++i) {
sum += st[i] - '0';
}
if(sum == 0) cout<<toSt(sum);
else {
dfs(sum/10);
cout<<toSt(sum%10);
}
return 0;
}