1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main() 5 { 6 //初始要输出的数 7 string v[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; 8 string d[6] = {"shi", "bai", "qian", "wan", "yi"}; 9 string a; 10 //将要输出的数放在一个数组中 11 string res[30]; 12 cin >> a; 13 int len = 0; 14 int b[2] = {0}; 15 int length=a.length(); 16 for( int i=0; i<length;i++) { 17 //转为数型 18 int tmp = a[length-i-1]-'0'; 19 if( tmp>0 ) { 20 //不为0的处理 21 //四位时的处理 22 if( i>=4 && !b[i/4-1] ) { 23 //达到几回四位,判断wan和yi 24 b[i/4-1] = 1; 25 res[len++] = d[i/4 + 2]; 26 } 27 if( i%4!=0 ) { 28 res[len++] = d[i%4-1]; 29 } 30 //放入数字 31 res[len++] = v[tmp]; 32 } else { 33 //出现0的处理,若是有“ling”,则没必要再赋 34 if( len>0 && res[len-1].compare(v[0])){ 35 res[len++] = v[0]; 36 } 37 } 38 } 39 if( !(!res[len-1].compare(v[1]) && len>2 && !res[len-2].compare(d[0])) ) { 40 cout << res[len-1] << ' '; 41 } 42 for( int i=len-2; i>=0; --i ) { 43 cout << res[i] << ' '; 44 } 45 return 0; 46 }