2397293790 发表于 2022-10-20 16:51:05

python循环结构题目求解

这题用循环结构该咋做

jackz007 发表于 2022-10-20 16:51:06

for a in range(1 , 3):                  # 20 元
    for b in range(1 , 3):            # 10 元
      for c in range(1 , 4):          #5 元
            for d in range(1 , 16):   #1 元
                if 20 * a + 10 * b + 5 * c + d == 50:
                  print("可换得1元%2d张,5元%2d张,10元%2d张,20元%2d张,50元 1张" % (d , c , b , a))
      运行实况:
D:\\Python>python x.py
可换得1元15张,5元 1张,10元 1张,20元 1张,50元 1张
可换得1元10张,5元 2张,10元 1张,20元 1张,50元 1张
可换得1元 5张,5元 3张,10元 1张,20元 1张,50元 1张
可换得1元 5张,5元 1张,10元 2张,20元 1张,50元 1张

D:\\Python>

cqu20104225 发表于 2022-10-20 18:25:35

分析题目20元有且只有一张,故简化为判断1、5、10三种面额,代码如下:x = 1 # 10元面额,至少一张
sum = 0
while x < 3: # 10元面额最多只能有两张
    y = 1 # 5元面额,至少一张
    while True:
      z = 30 - x * 10 - y * 5 # 计算1元的张数
      if z >= 1: # 1元面额,至少一张
            print("可换得1张20元," + str(x) + "张10元," + str(y) + "张5元," + str(z) + "张1元")
            y += 1
            sum += 1
      else:
            break
    x += 1
print("共有" + str(sum) + "种方案")

页: [1]
查看完整版本: python循环结构题目求解