for a in range(21):
for b in range(51):
c = (100 - (5 * a) - (2 * b)) / 15
if (5 * a) + (2 * b) + (15 * c) == 100:
print(a, b, c)
# 运行结果a,b都有值,c为0
下面是改进的代码:
方法一:
for a in range(21):
for b in range(51):
c = (100 - (5 * a) - (2 * b)) / 15
c = int(c)
if (5 * a) + (2 * b) + (15 * c) == 100 and c > 0:
print(a, b, c)
# 运行结果a,b,c都有值
方法二:
for a in range(21):
for b in range(51):
for c in range(7):
if (5 * a) + (2 * b) + (15 * c) == 100:
print(a, b, c)
第二题:
n = 1
for i in range(50):
a = (0.000008) * 2 ** n
if a < 8848.13:
n += 1
print(n)
下面是改进:
n = 1
while float:
a = (0.000008)* 2 ** n
if a < 8848.13:
n += 1
else:
break
print(n)
第二个题用while循环比较方便,在需要求n未知数,不确定需要循环多少次,顾选择while循环。