PTA编程总结2
7-1 币值转换 (20 分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
输入格式:
输入在一行中给出一个不超过9位的非负整数。
输出格式:
在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。
输入样例1:
813227345
输出样例1:
iYbQdBcScWhQdBeSf
输入样例2:
6900
输出样例2:
gQjB
1)实验代码
#include <stdio.h> char digit[10] = {'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i','j'}; //代表0,1,2,3,4,5,6,7,8,9 int Billion = 100000000; //一亿 int main() { int n; scanf("%d",&n); if (n == 0) printf("a"); else { while(n) { if(n / Billion > 0) //n>一亿 B不变 ,最高位9位数 break; else Billion /= 10; //不然 最高位数减一 } while (n) { int tp = n / Billion; if(tp==0) //比如三位数091小于100,则输出一个0 { printf("a"); } else { printf("%c",digit[tp]); if(Billion == 1e5|| Billion == 1e1) printf("S"); else if(Billion == 1e6 || Billion == 1e2) printf("B"); else if(Billion == 1e7 || Billion == 1e3) printf("Q"); } if(Billion == 1e4) printf("W"); else if(Billion == 1e8) printf("Y"); n -= tp * Billion; Billion /= 10; } } return 0; }
这是参考了计科一班助教何铭康的,但是PTA上面的应该是4班助教的,当时没有电脑,就手机复制粘贴了。
运行结果截图