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 }