3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
您已經(jīng)有一個(gè)while True:循環(huán),您不需要內(nèi)部for循環(huán)來(lái)搜索您的號(hào)碼,只需n在while循環(huán)中不斷增加而不是添加新的計(jì)數(shù)器,當(dāng)找到您要查找的號(hào)碼時(shí),無(wú)限while True:循環(huán)將停止( using break),因此您的打印語(yǔ)句將被執(zhí)行:
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貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
謝謝你說(shuō)這是家庭作業(yè)!比起僅僅給出答案,更詳細(xì)地解釋事情會(huì)更好。
有幾點(diǎn)需要解釋?zhuān)?/p>
1) n%33 是 n 除以 33 的余數(shù)。所以 66%33 為 0,67%33 為 1。
2) For 循環(huán)通常是當(dāng)您需要在定義的范圍內(nèi)循環(huán)時(shí)(并非總是如此,但通常如此)。例如“將前 100 個(gè)整數(shù)相加”。while 循環(huán)在這里更有意義。它肯定會(huì)終止,因?yàn)樵谀承r(shí)候你會(huì)達(dá)到 33 * 237。
3) if i%33 == 0 and i%237 == 0: 表示當(dāng)數(shù)字可以被 37 和 237 均分(無(wú)余數(shù))時(shí),我們想做一些事情。
n=1001
while True:
if n%33==0 and n%237==0:
print(n)
break
n+=1

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
好吧,您仍然可以使用for循環(huán),只要上限至少與最大可能結(jié)果一樣高。結(jié)果將在 中i,而不是在 n 中,for循環(huán)就足夠了,而不是額外的while循環(huán)。當(dāng)for除以 33 和 237 時(shí)的余數(shù)為零(即它們都是因數(shù))時(shí),循環(huán)將中斷。
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 循環(huán)并對(duì)條件使用相同的邏輯。在這種情況下,我們測(cè)試至少有一個(gè)不是因素并繼續(xù)循環(huán),直到 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}")
添加回答
舉報(bào)