原题链接:PTA | 程序设计类实验辅助教学平台
题目(图片):
Sample Input
12345
思路:
a字符串数组存数字对应的英文单词
用字符串类型读入N
把N每位上的数字转换成int类型加起来得到sum
把sum转换成string ,每位上的字母对应
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
string a[20]={"zero","one","two","three","four","five","six","seven","eight","nine"};
string s;
int sum=0;
cin>>s;
for(int i=0;i<s.size();i++){
sum+=s[i]-'0';
}
s=to_string(sum);
cout << a[s[0] - '0'];
for(int i=1;i<s.size();i++){
cout<<' '<<a[s[i]-'0'];
}
return 0;
}
注意要点:
两个相邻字母之间的ascll相差1,所以可以利用与'0'做差,得到int数