ビューティフルコード (THEORY/IN/PRACTICE)
- 作者: Brian Kernighan,Jon Bentley,まつもとゆきひろ,Andy Oram,Greg Wilson,久野禎子,久野靖
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/04/23
- メディア: 大型本
- 購入: 30人 クリック: 617回
- この商品を含むブログ (171件) を見る
で、先に読み進めてた結果、例3-5を書いてみる。l=1としてコードを書き換えると以下のコードになる。
void qc(int n){ int m; if ( n <= 1 ) return; m = randint(1,n); comps += n - 1; qc(m-1); qc(n-m); }
うん。これは分かりやすい。確認として、計算回数を見てみてもcompsは前回と同じ162242。すばらしい。
で、その流れで例3-6はただ単純にqc関数をcc関数に変換して、再帰を活用するのみ。
int cc(int n){ int m; if ( n <= 1 ) return 0; m = randint(1,n); return n - 1 + cc(m - 1) + cc(n - m); }
計算結果もちゃんと確認して162242となってめでたしめでたし。