本题传送门
这道题有一个点就是0,我是用while(ans)来取出每一位的,但是如果ans本身就是0,就不会进入循环,所以我改了一下,当然,这种错误即使不看反馈,应该也比较容易发现
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
//10的100次方就是100位的数字
int main()
{
string mp[10] = {"zero" , "one" , "two" , "three" , "four" , "five" , "six" , "seven" , "eight" , "nine" };
string a;cin>>a;
int len = a.size();
int ans = 0;
for(int i = 0 ; i < len ; i++)
{
ans += a[i] - '0';
}
vector<string> res;
while(1)
{
res.push_back(mp[ans%10]);
ans /= 10;
if(ans == 0) break;
}
for(int i = res.size() - 1 ; i >= 0 ; i --)
{
cout<<res[i];
if( i != 0 ) cout<<" ";
}
return 0;
}