问题是:给定正整数num_insects,编写一个while循环,打印该数字加倍但不超过100的数字。在每个数字后面加一个空格。
输入:8
预期输出:timestamp
但实际输出:
8 16 32 64
这是我的代码
8
16
32
64
128
答案 0 :(得分:0)
这是因为当num_insects为64时,条件num_insects <= 100为true。然后将其乘以2,即128,然后进行打印。要解决此问题,您需要检查num_insects * 2是否小于100,如下所示:
num_insects = int(input(""))
while num_insects * 2 <= 100:
if num_insects > 0:
num_insects *= 2
print(num_insects)
答案 1 :(得分:0)
当打印128
的循环开始时,num_insects
的值满足while循环条件。循环开始后,将其更改。
这对您有意义吗?
让我们看一下最终的迭代。
while num_insects <= 100: # Current value is 64
if_num_insects >0: # This is true. 64 is greater than 0
num_insects *= 2 # Double 64. Now it is 128
print(num_insects) # Prints 128
这时,num_insects <= 100
不再成立,循环退出。
答案 2 :(得分:0)
给定正整数 num_insects,编写一个 while 循环,每次迭代打印然后加倍 num_insects。打印值 ≤ 100。每个数字后跟一个空格。
输入的样本输出:8 8 16 32 64
num_insects = int(input()) # Must be >= 1
while num_insects <= 100:
print(num_insects, end = ' ')
num_insects = num_insects *2