python循环结构题目求解
这题用循环结构该咋做 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> 分析题目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]