輸入一個整數(位數不超過9位)代表一個人民幣值(單位為元),請轉換成財務要求的大寫中文格式。如23108元,轉換后變成“貳萬叄仟壹百零捌”元。為了簡化輸出,用小寫英文字母a-j順序代表大寫數字0-9,用S、B、Q、W、Y分別代表拾、百、仟、萬、億。於是23108元應被轉換輸出為“cWdQbBai”元。
輸入格式:
輸入在一行中給出一個不超過9位的非負整數。
輸出格式:
在一行中輸出轉換后的結果。注意“零”的用法必須符合中文習慣。
輸入樣例1:
813227345
輸出樣例1:
iYbQdBcScWhQdBeSf
輸入樣例2:
6900
輸出樣例2:
gQjB

1 #include<algorithm> 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath> 6 using namespace std; 7 int main(){ 8 char num[20]; 9 int k,num_len; 10 scanf("%s",num); 11 num_len = strlen(num); 12 for (int i = num_len - 1;i >= 0;i--){//去掉末尾0 13 if(num[i] != '0'){ 14 k = i; 15 break; 16 } 17 } 18 for(int i = 0;i <= k;i++){ 19 if(num[i] != '0'){ 20 printf("%c",num[i] - '0' + 'a'); 21 if(num_len - i - 1 == 1 || num_len - i - 1 == 5){ 22 printf("S"); 23 if(num_len - i - 1 == 5 && num[i + 1] == '0' && i + 1 < num_len) 24 printf("W"); 25 } 26 else if(num_len - i - 1 == 2 || num_len - i - 1 == 6){ 27 printf("B"); 28 if(num_len - i - 1 == 6 && num[i + 1] == '0' && i + 1 < num_len) 29 printf("W"); 30 } 31 else if(num_len - i - 1 == 3 || num_len - i - 1 == 7){ 32 printf("Q"); 33 if(num_len - i - 1 == 7 && num[i + 1] == '0' && i + 1 < num_len) 34 printf("W"); 35 } 36 else if(num_len - i - 1 == 4) 37 printf("W"); 38 else if(num_len - i - 1 == 8){ 39 printf("Y"); 40 } 41 } 42 else{ 43 if(num[i - 1] != '0') 44 printf("a"); 45 } 46 } 47 printf("\n"); 48 return 0; 49 }