写一个赚钱的程序

2024-05-16 18:09:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个程序,让我尽可能少的议案,使一个LBP的变化。你知道吗

import sys
n = int(sys.argv[1])

if n%100==0:
   print(n//100, " LBP ", 10**5)

elif n//100!=0 and n%50==0:
     print(n//100, " LBP ", 10**5)
     m = n-100*(n//100)
     print(m//50, " LBP ", 5*(10**4))

elif n//100!=0 or n//50!=0 and n%20==0:
     print(n//100, " LBP ", 10**5)
     m = n-100*(n//100)
     print(m//50, " LBP ", 5*(10**4))
     o = m - 50*(m//50)
     print(o//20, " LBP ", 2*(10**4))

elif n//100!=0 or n//50!=0 or n//20!=0 and n%10==0:
     print(n//100, " LBP ", 10**5)
     m = n-100*(n//100)
     print(m//50, " LBP ", 5*(10**4))
     o = m - 50*(m//50)
     print(o//20, " LBP ", 2*(10**4))
     p = o - 20*(o//20)
     print(p//10, " LBP ", (10**4))

elif n//100!=0 or n//50!=0 or n//20!=0 or n//10!=0 and n%5==0:
     print(n//100, " LBP ", 10**5)
     m = n-100*(n//100)
     print(m//50, " LBP ", 5*(10**4))
     o = m - 50*(m//50)
     print(o//20, " LBP ", 2*(10**4))
     p = o - 20*(o//20)
     print(p//10, " LBP ", (10**4))
     q = p - 10*(p//10)
     print(n//5, " LBP ", 5*(10**3))

elif n//100!=0 or n//50!=0 or n//20!=0 or n//10!=0 or n//5!=0 and n%1==0:
     print(n//100, " LBP ", 10**5)
     m = n-100*(n//100)
     print(m//50, " LBP ", 5*(10**4))
     o = m - 50*(m//50)
     print(o//20, " LBP ", 2*(10**4))
     p = o - 20*(o//20)
     print(p//10, " LBP ", (10**4))
     q = p - 10*(p//10)
     print(n//5, " LBP ", 5*(10**3))
     r = q - 5*(q//10)
     print(n-m-o-p-q-r, " LBP ", 10**3)

它对某些数字不起作用,例如134。 你能帮我修一下吗?或者你能建议其他的写作方法吗?你知道吗

谢谢你的帮助。你知道吗


Tags: orandimport程序ifsys数字建议
1条回答
网友
1楼 · 发布于 2024-05-16 18:09:26

这应该起作用:

def lbp(num):
    count = {}
    for bill in [100, 50, 20, 10, 5, 1]:
        count[bill] = num // bill
        num %= bill
    return {k: v for k, v in count.items() if v > 0}


import sys
n = int(sys.argv[1])

for bill, count in sorted(lbp(n).items(), reverse=True):
    print(count, ' LBP ', bill*1000)

使用循环和函数,它可以被清理很多。你知道吗

相关问题 更多 >