题目描述
C++解法
解法1
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
int sum = 0;
string str[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
for (int i = 0; i < s.length(); i++)
sum += (s[i] - '0');
string num = to_string(sum);
for (int i = 0; i < num.length(); i++) {
if (i != 0) cout << " ";
cout << str[num[i] - '0'];
}
return 0;
}
解法2
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main(){
char str[110];
cin.getline(str,110);
int len=strlen(str);
int sum=0;
for(int i=0;i<len;i++){
sum+=str[i]-'0';
}
int num=0,ans[10];
while(sum!=0){
ans[num++]=sum%10;
sum=sum/10;
}
char change[10][5]={
"ling","yi","er","san","si","wu","liu","qi","ba","jiu"
};
for(int i=num-1;i>=0;i--){
printf("%s",change[ans[i]]);
if(i!=0) printf(" ");
else printf("\n");
}
return 0;
}
python解法
num = input()
sum = 0
for i in num:
sum += eval(i)
l = ['ling','yi','er', 'san', 'si', 'wu', 'liu', 'qi', 'ba', 'jiu']
for k,i in enumerate(str(sum)):
if k == 0:
print(l[int(i)], end='')
else:
print(' '+l[int(i)], end='')