PTA 7-10 币值转换

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

输入格式:

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

输出格式:

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

输入样例1:

813227345

输出样例1:

iYbQdBcScWhQdBeSf

输入样例2:

6900

输出样例2:

gQjB
n2a = 'abcdefghij'  #数字0用a字符代替,数字1用b字符代替,依次类推
n_str = input()
if n_str == '0':
    print('a')
else:
     #加上十百千万亿
    result = ''
    if n_str[-1] != '0':
        result = n2a[int(n_str[-1])]
    if len(n_str) > 1:
        if n_str[-2] != '0':
            result = n2a[int(n_str[-2])] + 'S' + result
        elif n_str[-1] != '0':
            result = 'a' + result
    if len(n_str) > 2:
        if n_str[-3] != '0':
            result = n2a[int(n_str[-3])] + 'B' + result
        elif n_str[-2] != '0':
            result = 'a' + result
    if len(n_str) > 3:
        if n_str[-4] != '0':
            result = n2a[int(n_str[-4])] + 'Q' + result
        elif n_str[-3] != '0':
            result = 'a' + result
    if len(n_str) > 4:
         if len(n_str) == 9 and n_str[1:5] == '0000':
             result = 'a' + result  # 如:100001234
         else:
            result = 'W' + result
    if len(n_str) > 4:
        if n_str[-5] != '0':
            result = n2a[int(n_str[-5])] + result
    if len(n_str) > 5:
        if n_str[-6] != '0':
            result = n2a[int(n_str[-6])] + 'S' + result
        elif n_str[-5] != '0':
            result = 'a' + result
    if len(n_str) > 6:
        if n_str[-7] != '0':
            result = n2a[int(n_str[-7])] + 'B' + result
        elif n_str[-6] != '0':
            result = 'a' + result
    if len(n_str) > 7:
        if n_str[-8] != '0':
            result = n2a[int(n_str[-8])] + 'Q' + result
        elif n_str[-7] != '0':
            result = 'a' + result
    if len(n_str) > 8:
        result = n2a[int(n_str[-9])] + 'Y' + result
    print(result)

猜你喜欢

转载自blog.csdn.net/weixin_58707437/article/details/127945553