有关PHP如何利用函数来反转数字,打印给定范围内的所有回文数

下面看看我的实现方法:

<?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);
?>

输出结果为:

1628757440278759

在上例中,我们使用了一个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."个";
?>

输出结果:

1628758847992386

然后是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."个";
?>

输出结果:

1628758892982973

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);
?>

输出结果:

1628758952647870

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片