#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