3 回答
TA贡献1853条经验 获得超18个赞
您已经有一个while True:循环,您不需要内部for循环来搜索您的号码,只需n在while循环中不断增加而不是添加新的计数器,当找到您要查找的号码时,无限while True:循环将停止( using break),因此您的打印语句将被执行:
n = 1001 # start at 1001
while True: # start infinite loop
if n % 33 == 0 and n % 273 == 0: # if `n` found
break # exit the loop
n += 1 # else, increment `n` and repeat
print(f"The value of n is {n}") # done, print the result
输出:
The value of n is 3003
TA贡献1820条经验 获得超2个赞
谢谢你说这是家庭作业!比起仅仅给出答案,更详细地解释事情会更好。
有几点需要解释:
1) n%33 是 n 除以 33 的余数。所以 66%33 为 0,67%33 为 1。
2) For 循环通常是当您需要在定义的范围内循环时(并非总是如此,但通常如此)。例如“将前 100 个整数相加”。while 循环在这里更有意义。它肯定会终止,因为在某些时候你会达到 33 * 237。
3) if i%33 == 0 and i%237 == 0: 表示当数字可以被 37 和 237 均分(无余数)时,我们想做一些事情。
n=1001
while True:
if n%33==0 and n%237==0:
print(n)
break
n+=1
TA贡献1712条经验 获得超3个赞
好吧,您仍然可以使用for循环,只要上限至少与最大可能结果一样高。结果将在 中i,而不是在 n 中,for循环就足够了,而不是额外的while循环。当for除以 33 和 237 时的余数为零(即它们都是因数)时,循环将中断。
n = 1001 #This one is required
for i in range(n, 33 * 237 + 1): # I don't know what should i put in the blank
if i % 33 == 0 and i % 237 == 0: # I really confused about this line
break #
print(f"The value of i is {i}") #This one is also required
您还可以使用 while 循环并对条件使用相同的逻辑。在这种情况下,我们测试至少有一个不是因素并继续循环,直到 33 和 237 都可以整除 i。
n = 1001 #This one is required
i = n
while i % 33 or i % 237:
i += 1
print(f"The value of i is {i}")
添加回答
举报