#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
string str;
cin>>str;
int n = str.size();
string nums[10] ={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string units[11] = {"","","shi","bai","qian","wan","shi","bai","qian","yi","shi"};
for(int i = 0; i < n; i++)
{
int num = str[i] - '0';
if(num == 0)
{
if(i + 1 < n && str[i+1] != '0')
{//下一个不是0,才输出ling
cout<<nums[num]<<" ";
}
}
else if((n - i == 2 || n - i == 6 || n - i == 10) && num == 1)
{//10几而不是20、30几的时候输出shi,而不 yi shi
cout<<units[n-i]<<" ";
}
else
{
cout<<nums[num]<<" "<<units[n-i]<<" ";
}
}
return 0;
}
参考:他的有点小问题 50101这种答案不对
https://blog.csdn.net/jyl1159131237/article/details/78631962#commentBox