- 238 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 15:53:30 ]
- どの例題?
難しく考えるから難しいんだと思うけどねぇ。 例えば、これでも難しい? int mul(int number, int iteration) { if (iteration == 1) return number; // 「繰り返し回数(iteration)」が1回なら「指定数値(number)」を(そのまま)返す return number + mul(number, iteration - 1); // (そうでないなら)「指定数値」と「繰り返し回数」を一つ減らして自身を呼び出した結果を足して、その値を返す } 例えばmul(5, 3)なら、 (最初の行は該当しないので)5とmul(5, 3 - 1)の結果を足して返す と言うことになる。 で、mul(5, 3 - 1)は当然mul(5, 2)だから、 (最初の行は該当しないので)5とmul(5, 2 - 1)の結果を足して返す となる。 更に、mul(5, 2 - 1)はmul(5, 1)だから (最初の行に該当して)5を返す となる。 つまり、mul(5, 3)に立ち返れば 5とmul(5, 3 - 1)の結果を足して返す ↓ 5と 5とmul(5, 2 - 1)の結果を足して返す を足して返す ↓ 5と 5と 5を返す を足して返す を足して返す となって、 5と 5と5を足して返す を足して返す ↓ 5と5と5を足して返す となる。 こんだけ。ちっとも難しくは無いでしょ。めんどくさいけどw
|

|