算算数字“1”显示多少次
<?php //轿车的里程表可以显示 000000 到 999999 的任意六位数组合。里程表跑完整个显示区域,此间有多少个包含一个数字“1” 的里程数? 整个过程,数字“1” 显示多少次? (如,101111 显示了5次数字“1” ,下一个里程数101112又显示了4次) for($i=0;$i<=9;$i++){ echo $i, ' exists ', showTimes(3, $i); echo PHP_EOL; } function showTimes($num, $char){ $times = 0; $i = 0; do{ $ipad = str_pad($i,$num,'0', STR_PAD_LEFT); // echo $ipad,' ',substr_count($ipad, $char),PHP_EOL; $times += substr_count($ipad, $char); }while(strlen(++$i)<=$num); return $times; } // 换一种思路,6个数字有6个位置,每个位置出现[1-9]的可能性都存在,并且每个数字出现的次数都是一样的。 // 如一个长度为3的0-9的序列串,某一位出现1次,则另外两位则共出现10*10次,所以就是3*10*10 function showTimes2($num, $char){ return $num*10*10; }
« 缺失的数字是多少?
|
PHP陷阱之count»