python取余什么意思_python取余问题

展开全部

def leastcoin(coinnum):

ls = [25, 10, 5, 1]

ls2 = []

for a in ls:

ls2.append(coinnum/a) //通过这行5261ls2.append()加入coinnum/a的商

coinnum = coinnum%a //取余

return ls2

print(leastcoin(1111))

[44, 1, 0, 1]

"""

#python2

for a in ls:

ls2.append(coinnum/a)

coinnum = coinnum%a

ls = [25 ,10, 5, 1]

第一次循环, coinnum = 1111, a = 25, coinnum/a = 1111/25 = 44, coinnum%a = 1111%25 = 11

ls2.append(coinnum/a) ----> ls2.append(44) ----> ls2 = [44]

coinnum = coinnum%a ----> coinnum = 11 # 被重4102新赋值

第二次循环, coinnum = 11 (因为上一轮被重新赋值,所以是165311不是1111), a = 10

coinnum/a = 11/10 = 1, coinnum%a = 1%10 = 1

ls2.append(coinnum/a) ----> ls2.append(1) ----> ls2 = [44, 1]

coinnum = coinnum%a ----> coinnum = 1

第三次循环, coinnum = 1, a = 5, coinnum/a = 1/5 = 0, coinnum%a = 1%5=1

ls2.append(coinnum/a) ----> ls2.append(0) ----> ls2 = [44, 1, 0]

coinnum = coinnum%a ----> coinnum = 1

第四次循环, coinnum = 1, a = 1, coinnum/a = 1/1 = 1, coinnum%a = 1%1=0

ls2.append(coinnum/a) ----> ls2.append(1) ----> ls2 = [44, 1, 0, 1]

coinnum = coinnum%a ----> coinnum = 0

所以最后ls2 = [44, 1, 0, 1]

例如:1111的金额 需要44张25面额 + 1张10面额 + 0张5面额 + 1张1面额 组成.

被加进ls2列表的值是上一轮余数 coinnum%a , 除以ls元素的商.

"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值