本题难度不大,仅是string与long转换
#include<iostream>
#include <sstream>
#include<string>
#include <stdlib.h>
using namespace std;
long add(string &str) {
long res=0;
for (int i = 0; i < str.length(); i++) {
res += (str[i] - '0');
}
return res;
}
string ltos(long l)
{
ostringstream os;
os << l;
string result;
istringstream is(os.str());
is >> result;
return result;
}
int main() {
string str;
cin >> str;
long re1 = add(str);
string re= ltos(re1);
int len = re.length();
string resl[10000];
for (int n = 0; n < len; n++) {
if (re[n] == '0')
resl[n] = "zero";
else if (re[n] == '1')
resl[n] = "one";
else if (re[n] == '2')
resl[n] = "two";
else if (re[n] == '3')
resl[n] = "three";
else if (re[n] == '4')
resl[n] = "four";
else if (re[n] == '5')
resl[n] = "five";
else if (re[n] == '6')
resl[n] = "six";
else if (re[n] == '7')
resl[n] = "seven";
else if (re[n] == '8')
resl[n] = "eight";
else if (re[n] == '9')
resl[n] = "nine";
}
for (int n = 0; n < len; n++) {
if(n<len-1)
cout << resl[n]<<' ';
else cout << resl[n];
}
}