ls = [25, 10, 5, 1]
ls2 = []
for a in ls:
ls2append(coinnum/a) //通过这行ls2append()加入coinnum/a的商
coinnum = coinnum%a //取余
return ls2
print(leastcoin(1111))
[44, 1, 0, 1]
"""
#python2
for a in ls:
ls2append(coinnum/a)
coinnum = coinnum%a
ls = [25 ,10, 5, 1]
第一次循环, coinnum = 1111, a = 25, coinnum/a = 1111/25 = 44, coinnum%a = 1111%25 = 11
ls2append(coinnum/a) ----> ls2append(44) ----> ls2 = [44]
coinnum = coinnum%a ----> coinnum = 11 # 被重新赋值
第二次循环, coinnum = 11 (因为上一轮被重新赋值,所以是11不是1111), a = 10
coinnum/a = 11/10 = 1, coinnum%a = 1%10 = 1
ls2append(coinnum/a) ----> ls2append(1) ----> ls2 = [44, 1]
coinnum = coinnum%a ----> coinnum = 1
第三次循环, coinnum = 1, a = 5, coinnum/a = 1/5 = 0, coinnum%a = 1%5=1
ls2append(coinnum/a) ----> ls2append(0) ----> ls2 = [44, 1, 0]
coinnum = coinnum%a ----> coinnum = 1
第四次循环, coinnum = 1, a = 1, coinnum/a = 1/1 = 1, coinnum%a = 1%1=0
ls2append(coinnum/a) ----> ls2append(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元素的商
"""
余数 和 商数 不同余数 = %
商数 = /
在某种情况下我们会用余数
>>> 3/1
3
三除一等于三
>>> 3/2
1
三除二,有余数但是不输出
>>> 3/3
1
---------------------------------------------------------------
三除三等于一
>>> 3 % 1
0
三除一,没有余数
>>> 3 % 2
1
三除二,有余数
>>> 3 % 3
0
三除三,没有余数
在某种情况下我们会使用到 %
even = [x 2 for x in range(10) if not x % 2]
#这一小段代码的意思是说,在0-9之间如果没有余数,没有余数也就是双数,就会2
结果
>>> for i in even:
print i
0
4
16
36
64
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)