比如: 第一个数字是:1。 看着第一个数字你可以说1个1,那么第二个数字就是:11。 看着第二个数字你可以说2个1,即第三个数字是:21。 看着第三个数字你可以说1个2,1个1,即第四个数字是:1211。 看着第四个数字你可以说1个1,1个2,2个1,即第五个数字是:111221。 ………… 根据详细的说明可以参见:http://en.wikipedia.org/wiki/Look-and-say_sequence 下面用PHP实现这个序列,如下: <div class="codetitle"><a style="CURSOR: pointer" data="79186" class="copybut" id="copybut79186" onclick="doCopy('code79186')"> 代码如下:<div class="codebody" id="code79186"> function look($str) { $len = strlen($str); $count=0; $result=''; $temp=$str[0]; for($i=0;$i<$len;$i++) { if($temp!=$str[$i]) { $result.=$count.$temp; $temp = $str[$i]; $count=1; } else { $count++; } } $result.=$count.$temp; return $result; } $test_str = "1"; echo $test_str.''; for($i=0;$i<10;$i++) { $test_str=look($test_str); print $test_str.""; }
注意look函数中的for循环,当$len-1时,$result并未累加最后一位数字的统计结果,所以在循环完成后再次累加一次。 最后输出结果: 1 11 21 1211 111221 312211 13112221 1113213211 31131211131221 13211311123113112211 11131221133112132113212221 作者:<A href="http://ywxgod.cnblogs.com/">ywxgod (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|