说在前头:
作为一个大学生,没想到这题我竟然没有一遍过emmm,思路还是挺简单的
太菜了太菜了,这才是入门组啊
思路
先观察数据范围
N<= 10^100 (这个数很大 1后面100个零 我还以为很小呢太呆了)
因为只需要加上每一位的个数,所以我们使用字符串存,同时我们预处理一下字符串数组即可
但是挺坑的就是 单个0的情况要拉出来特判 给我wa了一次
code:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
string s2[10];
int idx ,d[10010];
int main()
{
s2[0] ="zero";
s2[1] = "one";
s2[2] = "two";
s2[3] = "three";
s2[4] = "four";
s2[5] = "five";
s2[6] = "six";
s2[7] = "seven";
s2[8] = "eight";
s2[9] = "nine";
ll ans = 0;
string n;
cin>>n;
int len = n.size();
for(int i = 0;i<len;i++)
ans+=n[i] -'0';
string res;
if(ans == 0)
d[++idx] =0;
while(ans!=0)
{
d[++idx] = ans%10;
ans/=10;
}
reverse(d+1,d+1+idx);
for(int i = 1;i<=idx;i++)
cout<<s2[d[i]]<<" ";
return 0;
}