GCD を計算するときに「gcdIter」が「None」を返すのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-03 10:59:29
オリジナル
900 人が閲覧しました

Why Does `gcdIter` Return `None` When Calculating GCD?

Python 再帰関数の不可解な動作を理解する: gcdIter が None を返すのはなぜですか?

再帰関数を扱うときは、その関数の内容を把握することが重要ですリターン機構。 2 つの数値の最大公約数 (GCD) を計算することを目的とした、次の gcdIter 関数について考えてみましょう。ただし、特定の入力値 (例: 306 や 136) では、予期せず None が返されます。

問題はコードの再帰部分にあります。

gcdIter (a,b%a)
ログイン後にコピー

関数は関連するパラメータを使用して自分自身を再帰的に呼び出すと、その呼び出しの戻り値を処理できません。 GCD の結果を保持するには、戻り値をチェーンに戻す必要があります:

return gcdIter (a,b%a)
ログイン後にコピー

さらに、コードを合理化するためにマルチターゲット変数の代入を使用することが賢明です:

def gcdIter(a, b):
    a, b = min(a, b), max(a, b)
    if b % a == 0:
        return a
    return gcdIter(a, b % a)
ログイン後にコピー

これらの問題に対処することで、gcdIter は、期待どおり、指定された入力値に対して一貫して GCD を返すようになります。

以上がGCD を計算するときに「gcdIter」が「None」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート