weixin_51790202 2021-11-22 14:11 采纳率: 88.2%
浏览 603
已结题

汉子表示的大写数字金额

输入一个整数金额,输出汉字表示的大写金额。假设输入的金额数为正整数,且最大为12位数字。

输入格式:
输入一个正整数,表示金额,最大位数为12。

输出格式:
输出汉字表示的大写金额。输出的时候,从第一位数字开始,后面所有的位数都需要输出,包括0(零)。

输入样例:
123456789
结尾无空行
输出样例:
壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖圆
结尾无空行
输入样例:
987600020000
结尾无空行
输出样例:
玖仟捌佰柒拾陆亿零仟零佰零拾贰万零仟零佰零拾零圆
结尾无空行

  • 写回答

2条回答 默认 最新

  • panfei625 2021-11-22 14:31
    关注
    
    #我的思路:先把数据按四个四个隔开,上千的几千,上百的几百,然后看有几位数,决定输出万还是亿
    #我的思路好麻烦,要判断好多东西
    s=[]
    s=str(input())
    s=list(s)
    # print(s)
    #发现没有[-4:-1]的这种表现方式
    length=len(s)
    zd={}
    zd[0]="零"
    zd[1]="壹"
    zd[2]="贰"
    zd[3]="叁"
    zd[4]="肆"
    zd[5]="伍"
    zd[6]="陆"
    zd[7]="柒"
    zd[8]="捌"
    zd[9]="玖"
    for i in range(len(s)):
       # tmp=ord(s[i])-48
       print(zd[ord(s[i])-48],end="")
       if len(s)-i==9:
        print("亿",end="")
        continue
       if len(s)-i==5:
        print("万",end="")
        continue
       if  (len(s)-i)==7 or (len(s)-i)==3 or (len(s)-i)==11:
        print("佰",end="")
       elif  (len(s)-i)==8 or (len(s)-i)==4 or (len(s)-i)==12:
        print("仟",end="")
       elif  (len(s)-i)==6 or (len(s)-i)==2 or (len(s)-i)==10:
        print("拾",end="")
    print("圆")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月22日

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法