题目:币值转换

分数 20

作者 陈建海

单位 浙江大学

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

输入格式:

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

输出格式:

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

输入样例1:

813227345

输出样例1:

iYbQdBcScWhQdBeSf

输入样例2:

6900

输出样例2:

gQjB

思路分析:

首先:把输入的数字分成三种不同的情况来判断,过亿的,过万不过亿的和不过万的,每四个数一组判断

代码:

letter1={0:"a",1:"b",2:"c",3:"d",4:"e",5:"f",6:"g",7:"h",8:"i",9:"j"}
letter2={10:"S",100:"B",1000:"Q"}
#返回n对应的数值位,比入123返回100,用于解决后面单位
def calculate(n):
    return 10**(len(str(n))-1)
def fac(n):
    if n!=0:
        #记录要返回的英文
        letter=""
        temp=calculate(n)
        while n!=0:
            #得到最高位的值
            flag=n//temp
            if flag in letter1:
                if flag!=0:
                    letter+=letter1[flag]
                    if temp in letter2:
                        letter+=letter2[temp]
                else:
                    #处理中间多个零的情况
                    if flag==0 and letter[-1]!='a':
                        letter+=letter1[flag]
            n%=temp
            temp//=10
        return letter
    else:
        #为了解决输入为0
        return letter1[0]
number=input()
n=len(number)
letter=""
#过亿
if n==9:
    y=int(number[0])
    letter=letter1[y]+"Y"
    if int(number)%100000000!=0:
        #不过万的为四个数都为0
        if int(number)%10000==0:
            w=int(number[1:5])
            letter+=fac(w)+"W"
        #过万不过亿的四个数都为0
        elif int(number)%10000==int(number)%100000000:
            k=int(number[5:])
            letter+=fac(k)
        #都不为0
        else:
            w=int(number[1:5])
            letter+=fac(w)+"W"
            k=int(number[5:])
            letter+=fac(k)
#不过亿过万
elif 4<n<9:
    w=int(number[0:-4])
    letter+=fac(w)+"W"
    if int(number)%10000!=0:
        k=int(number[-4:])
        if 1<=k<1000:
        #处理中间多个零的情况
            letter+=letter1[0]+fac(k)
        else:
            letter+=fac(k)
#不过万
elif n<=4:
    k=int(number)
    letter+=fac(k)
print(letter)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐