题目链接:点击打开链接
知识点笔记:
- 将字符通过asc码的形式转化为整数 str[i] - '0'
- 取数字的每个位上的数字,对10取余后在/=10
AC代码:
#include <cstdio>
#include <cstring>
using namespace std;
int main() {
char str[105];
scanf("%s",str);
int len = strlen(str);
int sum = 0; //各个位的数字之和
for(int i=0;i<len;i++){
sum += str[i] -'0'; //用asc码将char类型转换为int类型
}
int index=0,ans[10]; // 将各个位上的是数字放到数组ans里
while(sum!=0){
ans[index] = sum%10;
index++;
sum/=10;
}
char SNum [10][5] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
for(int i=index-1;i>=0;i--){
printf("%s",SNum[ans[i]]);
if(i!=0) printf(" ");
else printf("\n");
}
return 0;
}