题解 | #人民币转换#

人民币转换

https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b

ls = "零壹贰叁肆伍陆柒捌玖"
x = "元拾佰仟万亿角分整"

# 万元以内
def read_thousand(num:int)-> str:
    one = ""
    ten = ""
    hundred = ""
    thounsand = ""
    res_ls = [thounsand,hundred,ten,one]
    for i in range(1,5):
        k = int(num%10)
        num = num//10
        if k :
            res_ls[-i] = ls[k] + x[i-1]
    #当中间存在0的时候,添加一个零
    temp = 0
    c = 0
    for i in range(len(res_ls)):
        if temp != len(res_ls[i]):
            c += 1
            temp = len(res_ls[i])
        if c == 2:
            res_ls[i] = ls[0]
            c += 1

    if res_ls[-1] != "" or res_ls[-1] == ls[0]:
        return "".join(res_ls)[:-1]
    else:
        return "".join(res_ls) #去掉0或者去掉元

string = ""

def app(num:int) ->str:
    string = ""
    length = len(str(num))
    if length <= 4:
        string = read_thousand(num)
    elif length <= 8:
        re = int(num % 10e3)
        dt = int(num // 10e3)
        string = app(dt) + x[4] + app(re)
        
    else:
        re = int(num % 10e7)
        dt = int(num // 10e7)
        string = app(dt) + x[5] + app(re)
    return string


num = float(input())
res = "人民币"
#小数部分
laststr = ""

if int(round(num * 100) % 100) == 0:
    laststr = x[-1]
else:
    a = int(round(num*100) % 100)
    #a // 10 为多少角
    if a//10 != 0:
        laststr  += ls[a//10] + x[6]
    #a % 10 为多少分
    if a % 10 != 0:
        laststr += ls[a%10] + x[7]
    

#整数部分
bignum = int(num * 100 //100)
bignumstr = app(bignum).replace("壹拾","拾")

if int(num) == 0 and int(num * 100 % 100) == 0:
    print("人民币零元整")
elif len(bignumstr) == 0:
    finalstr =res + laststr
    print(finalstr)
else:
    finalstr =res + bignumstr +"元" + laststr
    print(finalstr)

全部评论

相关推荐

来,说点可能被同行“骂”的大实话。🙊当初接数字马力Offer时,朋友都说:“蚂蚁的“内包”公司?你想清楚啊!”但入职快一年后的今天,我反而对他有了不一样的看法!🔹&nbsp;是偏见?还是信息差!之前没入职之前外面都在说什么岗位低人一等这类。实际上:这种情况不可至否,不能保证每个团队都是其乐融融。但我在的部门以及我了解的周边同事都还是十分好相处的~和蚂蚁师兄师姐之间也经常开一些小玩笑。总之:身份是蚂蚁公司给的,地位是自己挣的(一个傲娇女孩的自述)。🔹&nbsp;待遇?玩的就是真实!试用期工资全额发!六点下班跑得快(早9晚6或者早10晚7,动态打卡),公积金顶格交。别听那些画饼的,到手的钱和下班的时间才是真的(都是牛马何必难为牛马)。🔹&nbsp;能不能学到技术?来了就“后悔”!我们拥有权限直通蚂蚁知识库,技术栈多到学不完。说“学不到东西”的人,来了可能后悔——后悔来晚了(哈哈哈哈,可以不学但是不能没有)!💥&nbsp;内推地址:https://app.mokahr.com/su/ueoyhg❗我的内推码:NTA6Nvs走我的内推,可以直达业务部门,面试流程更快速,进度可查!今天新放HC,之前挂过也能再战!秋招已经正式开始啦~机会就摆在这,敢不敢来试一试呢?(和我一样,做个勇敢的女孩)
下午吃泡馍:数字马力的薪资一般哇,5年经验的java/测试就给人一万出头,而且刚入职第三天就让人出差,而且是出半年
帮你内推|数字马力 校招
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务