下面看看我的实现方法:
<?php header("Content-type:text/html;charset=utf-8"); function hws($num) { if($num==strrev($num)){ echo $num."是一个回文数<br><br>"; }else{ echo $num."不是一个回文数<br><br>"; } } hws(5); hws(11); hws(12); hws(212); hws(213); hws(1515); hws(15151); ?>
输出结果为:
在上例中,我们使用了一个PHP内置函数–strrev(),它可以反转字符串;利用这个函数,我们可以将一个数(例213),反转成字符串“321”。
然后使用“==
”运算符,比较数字213和字符串“321”是否相等;显然是不相等的,因此213不是一个回文数。
等式(==)运算符进行的比较是松散的,它只比较两边变量的值,而不是数据类型;如果两个值相同则返回true值,如果两个值不相同则返回false值。
推荐阅读:《PHP中等式(==)和恒等式(===)运算符的简单比较》
是不是,很简单,没有上文那么多的计算!
下面加大难度,我们来打印给定范围内的所有回文数,并统计回文数的个数。先试试100以内的所有回文数:
<?php header("Content-type:text/html;charset=utf-8"); $num=0; for($i=0;$i<100;$i++){ if($i==strrev($i)){ echo $i." "; $num++; } } echo "<br><br>100以内的回文数共有".$num."个"; ?>
输出结果:
然后是100~1000之间的所有回文数
<?php header("Content-type:text/html;charset=utf-8"); $num=0; for($i=100;$i<1000;$i++){ if($i==strrev($i)){ echo $i." "; $num++; } } echo "<br><br>100~1000间的回文数共有".$num."个"; ?>
输出结果:
ok,封装成一个功能函数:
<?php header("Content-type:text/html;charset=utf-8"); function hws($a,$b) { $num=0; for($i=$a;$i<$b;$i++){ if($i==strrev($i)){ echo $i." "; $num++; } } echo "<br><br>$a ~ $b 间的回文数共有".$num."个<br><br><br>"; } hws(0,100); hws(100,1000); ?>
输出结果:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容