0

「a」のパラメーター「n」の値を決定して値300を超えるはずのwhileループをMatlabで作成しました。「n」は17である必要があることはわかっていますが、代わりに4の値を取得しています. 誰かが問題を見ていますか?

コードは次のとおりです。

a = 10;
k = 0.5;
n = 2;
while a < 300
    for m = 1:5
        a = a + (a*k) + n;
    end
    n = n + 1;
end

編集: Barmar のコメントのおかげで、「a」変数を再初期化していないことに気付きました。コードはあまり効率的ではないように見えるかもしれませんが、これは私にとってはうまくいくものです:

a = 10;
k = 0.5;
n = 2;
while a < 300
    a = 10;
    for m = 1:5
        a = a + (a*k) + n;
    end
    if a >= 300
        break
    end
    n = n + 1;
end
4

1 に答える 1

0

式が正しければ、期待される答えは 4 です。最初の for ループの実行では、a がそれぞれの値に変換されます。

17, 27, 42, 65, 99

次に、n を 3 にします。次の実行では、a を次のように変換します。

151, 229, 346, 522, 786

a は現在 > 300 ですが、n をもう一度インクリメントする必要があることに注意してください。したがって、n = 4 です。

于 2013-10-18T02:18:44.777 に答える