|
发表于 2024-4-13 23:54:57
|
显示全部楼层
本帖最后由 jackz007 于 2024-4-14 00:57 编辑 count = 0
print("可能兑换的组合有以下几种:")
for x in range(0,51,10):
for y in range(0,51-x,5):
for z in range(0,51-x-y):
if x+y+z ==50:
print(f"第{count+1}种,10元{x//10}张,5元{y//5}张,1元{z}张 ",end = "")
if (count % 3 == 0): # 先判断,这个时候还没有更新计数
print("")
count += 1 # 【问题】:再计数
print(f"一共有{count}种组合")
由于没有及时更新 count,导致在打印完第 1 种组合后,count 的值仍然是 0,而 0 % 3 的值肯定为 0 ,所以,就打印回车换行了。于是,我们就看到,第 1 行只显示了 1 种组合。从而,不符合预期。修改方法很简单,把第10行语句移动到第8行之前即可count = 0
print("可能兑换的组合有以下几种:")
for x in range(0,51,10):
for y in range(0,51-x,5):
for z in range(0,51-x-y):
if x+y+z ==50:
print(f"第{count+1}种,10元{x//10}张,5元{y//5}张,1元{z}张 ",end = "")
count += 1 # 【修改】:先计数
if (count % 3 == 0): # 再判断
print("")
print(f"一共有{count}种组合")
运行实况:D:\[exercise]\Python>python x.py
可能兑换的组合有以下几种:
第1种,10元0张,5元0张,1元50张 第2种,10元0张,5元1张,1元45张 第3种,10元0张,5元2张,1元40张
第4种,10元0张,5元3张,1元35张 第5种,10元0张,5元4张,1元30张 第6种,10元0张,5元5张,1元25张
第7种,10元0张,5元6张,1元20张 第8种,10元0张,5元7张,1元15张 第9种,10元0张,5元8张,1元10张
第10种,10元0张,5元9张,1元5张 第11种,10元0张,5元10张,1元0张 第12种,10元1张,5元0张,1元40张
第13种,10元1张,5元1张,1元35张 第14种,10元1张,5元2张,1元30张 第15种,10元1张,5元3张,1元25张
第16种,10元1张,5元4张,1元20张 第17种,10元1张,5元5张,1元15张 第18种,10元1张,5元6张,1元10张
第19种,10元1张,5元7张,1元5张 第20种,10元1张,5元8张,1元0张 第21种,10元2张,5元0张,1元30张
第22种,10元2张,5元1张,1元25张 第23种,10元2张,5元2张,1元20张 第24种,10元2张,5元3张,1元15张
第25种,10元2张,5元4张,1元10张 第26种,10元2张,5元5张,1元5张 第27种,10元2张,5元6张,1元0张
第28种,10元3张,5元0张,1元20张 第29种,10元3张,5元1张,1元15张 第30种,10元3张,5元2张,1元10张
第31种,10元3张,5元3张,1元5张 第32种,10元3张,5元4张,1元0张 第33种,10元4张,5元0张,1元10张
第34种,10元4张,5元1张,1元5张 第35种,10元4张,5元2张,1元0张 第36种,10元5张,5元0张,1元0张
一共有36种组合
D:\[exercise]\Python>
以下是我改写的版本,谨供楼主参考count = 0
print('可能兑换的组合有以下几种:')
for a in range(6) : # 10 元 0 ~ 5 张
for b in range(11) : # 5 元 0 ~ 10 张
for c in range(51): # 1 元 0 ~ 50 张
if 10 * a + 5 * b + c == 50 :
count += 1
print('【第%2d种】:10元%1d张,5元%2d张,1元%2d张 ' % (count , a , b , c) , end = '')
if count % 3 == 0 :
print()
print('一共有%d种组合' % count)
运行实况:D:\[exercise]\Python>python x.py
可能兑换的组合有以下几种:
【第 1种】:10元0张,5元 0张,1元50张 【第 2种】:10元0张,5元 1张,1元45张 【第 3种】:10元0张,5元 2张,1元40张
【第 4种】:10元0张,5元 3张,1元35张 【第 5种】:10元0张,5元 4张,1元30张 【第 6种】:10元0张,5元 5张,1元25张
【第 7种】:10元0张,5元 6张,1元20张 【第 8种】:10元0张,5元 7张,1元15张 【第 9种】:10元0张,5元 8张,1元10张
【第10种】:10元0张,5元 9张,1元 5张 【第11种】:10元0张,5元10张,1元 0张 【第12种】:10元1张,5元 0张,1元40张
【第13种】:10元1张,5元 1张,1元35张 【第14种】:10元1张,5元 2张,1元30张 【第15种】:10元1张,5元 3张,1元25张
【第16种】:10元1张,5元 4张,1元20张 【第17种】:10元1张,5元 5张,1元15张 【第18种】:10元1张,5元 6张,1元10张
【第19种】:10元1张,5元 7张,1元 5张 【第20种】:10元1张,5元 8张,1元 0张 【第21种】:10元2张,5元 0张,1元30张
【第22种】:10元2张,5元 1张,1元25张 【第23种】:10元2张,5元 2张,1元20张 【第24种】:10元2张,5元 3张,1元15张
【第25种】:10元2张,5元 4张,1元10张 【第26种】:10元2张,5元 5张,1元 5张 【第27种】:10元2张,5元 6张,1元 0张
【第28种】:10元3张,5元 0张,1元20张 【第29种】:10元3张,5元 1张,1元15张 【第30种】:10元3张,5元 2张,1元10张
【第31种】:10元3张,5元 3张,1元 5张 【第32种】:10元3张,5元 4张,1元 0张 【第33种】:10元4张,5元 0张,1元10张
【第34种】:10元4张,5元 1张,1元 5张 【第35种】:10元4张,5元 2张,1元 0张 【第36种】:10元5张,5元 0张,1元 0张
一共有36种组合
D:\[exercise]\Python>
|
|