原题:
源代码:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
string invert[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int main(){
string n;
vector<int> num;
vector<string> s;
cin>>n;
int sum = 0;
for(int i = 0; i < n.length(); i ++){
int tt = n[i] - '0';
num.push_back(tt);
sum += tt;
}
if(sum == 0){
s.push_back("zero");
}
while(sum){
int last = sum % 10;
sum /= 10;
s.push_back(invert[last]);
}
for(int i = s.size() - 1; i > 0; i --){
cout<<s[i]<<" ";
}
cout<<s[0];
}
已AC:
易失分点:
1.数据很大,不能用int
2.结果可能为0,结果为0时,不会进入后面的while,此时vector为空,要单独处理,否则后面访问vector会越界