0

再び Project Euler に取り組んでいますが、今回は私のスクリプトがそこで止まってしまいます。私はそれを十分に長く実行させていると確信しており、私のハンドトレース(私の父がそう呼んでいます)は問題を引き起こしません. どこが間違っていますか?

コードの関連部分のみを一度だけ含めます。

def main():
    f, n = 0, 20
    while f != 20:
        f = 0
        for x in range(1,21):
            if n % x != 0: break
            else: ++f
        if f == 20: print n
        n += 20

前もって感謝します!

4

2 に答える 2

3

Python にはインクリメント ( ) がありません++。と解釈され+(+(a))ます。+ は単項プラス演算子で、基本的に何もしません。使用する+= 1

于 2010-06-30T13:08:18.977 に答える
0

ここであなたの場合、「f」値は決して20に達することができないため、終了することはありません1)最初のブレーク(n = 20およびx = 3の場合)で、再びf = 0に設定します。同様に、次のループでも n は 20 増加しますが、「x」が再び 3 の場合、同じ f=0 になります

だから、これは無限ループになります....

于 2010-06-30T13:16:43.343 に答える