私は大学で以下のコードを与えられました。すぐにそれが何をしているのか、そして実行の最後にxの値がnの関数として何か、誰かが私を助けてくれることを願っています。次のコードは何をしますか?
x = 0;
for(int i = n; i > 1; i--) {
for(int j = 1; j < i; j--) {
x +=5;
}
}
おかげ
私は大学で以下のコードを与えられました。すぐにそれが何をしているのか、そして実行の最後にxの値がnの関数として何か、誰かが私を助けてくれることを願っています。次のコードは何をしますか?
x = 0;
for(int i = n; i > 1; i--) {
for(int j = 1; j < i; j--) {
x +=5;
}
}
おかげ
ので、ちょうど手でそれを実行した場合
(私はあなたの代わりに「j--」の「J ++を」書き、無限ループで終わるない?するためのものと仮定します)。
外側のループは、整数を超えて、nから2まで(2を含む)iで反復処理します。
ループの各繰り返しで、内側ループは、1からi-1までの整数にわたってjで反復処理します。
J = 1、2、 - 1
次いで、各
J = 1、2、... N:従って、xはそれぞれについて5インクリメントされる
... N - 2、その後
など、
...
まで、
J = 1
私は間違っていないならば、それはn個です*(N - 1)合計
/2回の反復(参照:等差数列)
がN(最終的
X == 5×n個*を与えるために - 1)/ 2
例えば用のn = 3:
X == 15
「HTHため
for(int i = n; i > 1; i--) {
for(int j = 1; j < i; j--) {
ので、私> 1とj = 1; j < i; j--。 jは常にiより小さくなるため、無限ループになります。
(INT J = 1; jは user2260040
インストラクターがあなたの仕事(私たちではない)を見たいので、あなたは課題を与えられました。あなたはそれを自分で行うべきです。あなたがそれを理解できない場合は、インストラクターに援助を依頼してください。彼らはあなたに必要な知識を提供する仕事をまだやっていないか、授業中に慎重ではなかったのでしょうか。がんばろう。 –
@ user2260040 ohh私の間違いだったので、編集しました –