写了两种方法实现,vector and stack
#include<iostream>
#include<string>
#include<vector>
using namespace std;
string words[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
int main(){
string s;
freopen("data.in", "r", stdin);
while(cin >> s){
vector<int> ans;
int num = 0;
for(int i = 0; i < (int)s.length(); ++i)
num += s[i] - '0';
while(num){
ans.push_back(num%10);
num /= 10;
}
for(int i = ans.size() - 1; i >= 0; --i){
cout << words[ans[i]] << (i == 0 ? '\n' : ' ');
}
}
return 0;
}
#include<iostream>
#include<string>
#include<stack>
using namespace std;
string words[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
int main(){
string s;
freopen("data.in", "r", stdin);
while(cin >> s){
stack<int> ans;
int num = 0;
for(int i = 0; i < (int)s.length(); ++i)
num += s[i] - '0';
while(num){
ans.push(num % 10);
num /= 10;
}
while(!ans.empty()){
int index = ans.top();
ans.pop();
cout << words[index] << (ans.empty() ? '\n' : ' ');
}
}
return 0;
}