输入金额,输出里得出这是几个500,几个200,几个100等等
def get_out(num_in):
key = [500, 200, 100, 50, 20, 10, 5, 2, 1]
value = [0]*len(key)
try:
num = int(num_in)
except ValueError:
print("It's not num!")
return
for i in range(len(key)):
n, num = num/key[i], num%key[i]
value[i] = n
value[-1] = num
out_put = str(num_in) + "$ = "
for i in range(len(key)):
if value[i]:
out_put += str(value[i]) + "*" + str(key[i])+"$ + "
return out_put[:-3]
简化下思维,获取输入值的百位 十位 个位 输出的时候百位加两个0,十位1个0就好了
NB,这是法语吗?
做一下if判断就好了,分别对500,200,100从大到小求除和求余
```python
if money/500>=1:
n500 = meney/500
money1 = mony%500
if money1/200>=1:
n200 = meney1/200
money2 = money1%200
if money2/100 >= 1:
# 不断重复
```
最后获取的一系列n就是你要的了
#!/usr/bin/env python
def get_out(num_in):
try:
num = int(num_in)
except ValueError:
print("It's not num!")
return
n_500, num = num/500, num%500
n_200, num = num/200, num%200
n_100, num = num/100, num%100
n_50, num = num/50, num%50
n_20, num = num/20, num%20
n_10, num = num/10, num%10
n_5, num = num/5, num%5
n_2, n_1 = num/2, num%2
put_out = str(num_in) + "$ = "
if n_500:
put_out += str(n_500) + "*500$ + "
if n_200:
put_out += str(n_200) + "*200$ + "
if n_100:
put_out += str(n_100) + "*100$ + "
if n_50:
put_out += str(n_50) + "*50$ + "
if n_20:
put_out += str(n_20) + "*20$ + "
if n_10:
put_out += str(n_10) + "*10$ + "
if n_5:
put_out += str(n_5) + "*5$ + "
if n_2:
put_out += str(n_2) + "*2$ + "
if n_1:
put_out += str(n_1) + "*1$ + "
return put_out[:-3]
if name == 'main':
num = input("please input the number:")
out = get_out(num)
print(out)