|
发表于 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>
复制代码 |
|