for文ばかり書くのも芸がないので、滅多に書かない再帰処理を関数で書いてみました。
お題は、「ある数の対数log2を求める」です。
配列の要素数の上限見ていたら、「これ何bitやっけ?」と思ったのがお題のきっかけです。
- 元
-
<?php function devide($target) { return $target / 2; } $target = 4294967296; $count = 0; while ($target > 1) { $target = devide($target); $count++; } echo $count; ?>
- 再帰処理関数
-
<?php function hoge(&$target, &$count) { if ( $target > 1 ) { $count++; $target/=2; hoge($target, $count); } return $count; } $target = 4294967296; $count = 0; echo hoge($target, $count); ?>
下記のブログエントリーを参考にさせていただきました。
by shigemk2 「PHPで再帰関数を作る」
0 件のコメント:
コメントを投稿