输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。

输入格式:

输入在一行中给出一个不超过9位的非负整数。

输出格式:

在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。

输入样例1:

  1. 813227345

输出样例1:

  1. iYbQdBcScWhQdBeSf

输入样例2:

  1. 6900

输出样例2:

  1. gQjB

思路

  1. #include<stdio.h>
  2. #include<string.h>
  3. //用自己思路写的 太困了 想写完 写完了发现格式很乱
  4. int main(){
  5. char bz[9] = {'a','S','B','Q','W','S','B','Q','Y'};
  6. char s[11];
  7. gets(s);
  8. int len;
  9. len = strlen(s);
  10. int clen;
  11. clen = len*2;
  12. char c[clen];
  13. int i, j;
  14. for(i=0; i<clen; i++)
  15. c[i] = '0';
  16. for(i=0; i<len; i++)
  17. c[i*2] = s[i] + 49;
  18. for(i=clen-1,j=0; i>0; i-=2, j++)//将数值和币值分别输入c[]
  19. c[i] = bz[j];
  20. int flag = 0;
  21. for(i=0; i<clen; i++){//格式控制c[]的输出
  22. if(c[i]=='a'){
  23. i++;
  24. flag = 1;
  25. if(c[i]=='W'){
  26. printf("W");
  27. }
  28. if(clen == 2)//第一位是'a' 长度为2 必定为a
  29. printf("a");
  30. continue;
  31. }
  32. else if(flag){
  33. flag = 0;
  34. printf("a%c", c[i]);
  35. }
  36. else{
  37. printf("%c", c[i]);
  38. }
  39. }
  40. return 0;
  41. }