- 论坛徽章:
- 0
|
def calc(list,pos,cursum,allsum,use):
if (pos==len(list)-1):
if ((allsum-cursum)%list[pos]==0):
use[pos]=int((allsum-cursum)/list[pos])
print(use)
else:
for use[pos] in range(int((allsum-cursum)/list[pos])+1):
cursum=cursum+use[pos]*list[pos]
calc(list,pos+1,cursum,allsum,use)
cursum=cursum-use[pos]*list[pos]
list=[1,5,10,50,100,200,500,1000]
use=[0,0,0,0,0,0,0,0]
calc(list,0,0,1000,use)
|
献丑了,因为几毛钱显示的不爽就把1毛当作单位1,list就是那个列表,use就表示当前使用情况,递归输出,效率不算高,情况数太多,我是用3.0的,因此print用了括号![](static/image/smiley/default/icon_mrgreen.gif)
[ 本帖最后由 daybreakcx 于 2009-3-23 12:39 编辑 ] |
|