/*
思路:
1.10的100次方,肯定超出long的范围,用字符表示。
2.n<=10^100。和最大是三位数.
3.可以用if、switch枚举、数组(下面代码用的这个,个人认为最简洁)、STL中的map等方法。
4.空格。
*/
#include<iostream>
#include<string>
using namespace std;
int main(){
char num;
int sum = 0, n1, n2, n3;//个位,十位,百位
while((num = getchar())!='\n'){
sum += num - '0';
}
char convert[10][10] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
n3 = sum/100;
n2 = (sum/10)-n3*10;
n1 = (sum%100)%10;
if(n3==0 && n2==0)
cout<<convert[n1];
else if(n3==0 && n2!=0)
cout<<convert[n2]<<" "<<convert[n1];
else
cout<<convert[n3]<<" "<<convert[n2]<<" "<<convert[n1];
}
知识点:
- 用(num = getchar())!=’\n’终止输入
- n3 = sum/100;//百位
n2 = (sum/10)-n3*10;//十位,还可以n2 = (sum / 10) % 10;
n1 = (sum%100)%10;//个位,