PHP 回文编程

来源:百度知道 编辑:UC知道 时间:2024/06/17 02:05:32
一个两位以上的自然数,如果左右数字对称,就称为回文数,编程找到所有不超过6位数字的回文数

<?php
for($i=11;$i<999999;$i++){
$len = strlen($i);//获取数字长度
$k = intval($len/2) + 1;//获取中间位数
$flag = 1;
for($j=0;$j<$k;$j++){
if(substr($i,$j,1)!=substr($i,$len-$j-1,1)){//从两边到中间进行一个一个比对,比如最左边对最右边,然后左边向右移动一位,右边向左移动一位,直到中间的一位或者两位,如果出现不相等,则不是,将$flag设置为0,并跳出该for循环
$flag = 0;
break;
}
}
if($flag==1){//根据$flag的值判断是否为回文数,是输出
echo $i,"是回文数","<br/>";
}
}
?>

你给的数字太多了,PHP在处理百万级别的时候,会出现超时现象,你可以设置PHP.INI延长限制。
你可以将这里的999999设置为小一点的书,比如100000,然后判断是不是正确的。

给你给个思路。

输入数字后,先转换为字符串,取的位数。

然后位数是4 那么最高位为10000,那就用数字除10000取整,得到高位。然后再除以10,取余!得到最低位。

判断最高位和和最低位是否相等。得出是否为回文数