2

以前の質問を再質問している場合は申し訳ありませんが、この質問に対する具体的な回答を見つけることができません。次のような基本的なもの以外に、ネストされた for ループ反復の式を作成するにはどうすればよいですか。

for (int i =0; i < N; i++)

基本ループのカウント反復の基本概念を取得します。

for (int i =0; i < N; i++)

ブール条件は、ある変数 (たとえば N) に等しく、初期変数 (たとえば i) から減算され、ネストされたループの数 (この場合はネストされていないため 1) で除算されます。したがって、このループの反復回数は次のようになります。

(N - i) / 1

たとえば、ネストされたループの反復を見つけるには、これをループを下に向かって繰り返し、最も内側のループに到達してから、反復回数のすべてのループを倍増させます。

乗算や除算など、インクリメント条件が異なるより複雑なループを理解していません。具体的には、このループが繰り返される回数を把握する方法:

for (int i = 1; i < 1000; i *= 2)
    for (int j = 0; j < 1000; j++)

残念ながら、これは合計で何かをしなければならないことはわかっていますが、接続がわかりません。リソースやアドバイスをいただければ幸いです。

4

2 に答える 2

0

ループ構文を間違って読んでいると思いますか?

次のように、声に出して読んでみてください。

このループの場合:

for (int i = 1; i < 1000; i *= 2)

ループ構文は次のとおりです。

1 から始めて、i が 1000 未満である間ループを続けます。ループのたびに、i を 2 倍します。

つまり、i は 1 から始まり、ループを回るたびに 2 が乗算されます。つまり、1、2、4、8、16 などです。これは、1000 (またはそれ以上) になるまで続きます。停止します。

そして、このループの場合:

for (int j = 0; j < 1000; j++)

ループ構文は次のように述べています。

ゼロから始めて、j が 1,000 未満の間ループを続けます。ループのたびに、j に 1 を追加します。

ネストされたループの場合、外側のループを一周するたびに内側のループ全体が実行されることを除いて、違いはありません。

物事を声に出して読んだり、頭の中で鳴らしたりすることは、それらを理解するのに本当に役立つことがわかりました.

于 2013-05-14T23:57:08.083 に答える