高さ0の三角形に対応するには,kの値が0かどうかを if 形式で判断します. プログラム全体を示します.
class Recursion{ public static void main(String argv[ ]){ triangle(10); } static void triangle(int k){ int i; if(k>0){ triangle(k-1); for(i=1; i<=k; i=i+1) System.out.print('*'); System.out.println(); } } }
以前に見た二重のforによるプログラムと比べて見て下さい.どちらがわかりやすいかは場合によりますが,再帰による方法は思考方法の転換を要求しているような気がしませんか?
プログラムRecursionのように,再帰の本体(ifの本体)の最初または最後で1回だけ「再帰呼出し」をしている場合は,簡単に反復に書き直すことができるので,あまり有難味が感じられないかも知れません.もう少し「味のある」再帰の例を見てみましょう.
26.1.5.8 再帰呼び | 26.1.5.9 再帰メソッド | 26.1.5.10 再帰の使用 | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Wed, 09 Feb 2005 01:44:57 JST (1634d) |