1 <?php 2 #输入n,判断从1~n序列中十进制数里1出现的次数 3 #例如输入12,则含有1的数字有1,10,11,12, 这里1一共出现了5次 4 5 #判断十进制数出现1的次数 6 function count1dec($x) { 7 $i = 1; 8 $count = 0; 9 10 #从个位数开始获取x的每一位数,并判断是不是1 11 while ($x >= pow(10, $i - 1)) { 12 $r = floor($x % pow(10, $i) / pow(10, $i - 1)); 13 if ($r == 1) { 14 $count++; 15 } 16 $i++; 17 } 18 19 return $count; 20 } 21 22 #判断整个序列1出现的次数 23 function count1dec_seq($n) { 24 $count = 0; 25 for ($i = 1; $i <= $n; $i++) { 26 $count += count1dec($i); 27 } 28 return $count; 29 } 30 31 echo count1dec_seq(12); 32 ?>