输入一个整数(位数不超过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 }