如何通过PHP程序输出全部三位回文数

首先我们需要了解什么是回文数?

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数,例如(0、1、2、3、4、5、6、7、8、9、11、22、121、656、757、12321、5264625等等)。

那么如果给出一个三位数i,如何判断这个三位数是不是回文数呢?

思想:

  • 我们可以将这个三位数(例如121)的个位、十位、百位上的数,单独取出来,即g、s、b。

  • 然后将 g*100、s*10,在和百位数b相加:g*100+s*10+b;这样会得到一个新的三位数hws

  • 使用if语句判断 i 是否等于 hws,即可判断出该三位数 i 是不是回文数了。

因此我们可以给出判断一个三位数是不是回文数的方法

<?php
header("Content-type:text/html;charset=utf-8");
$i=121;
$b= intval($i/100);
$s= ($i/10)%10;
$g= $i%10;
$hws=$g*100+$s*10+$b;
if($i==$g*100+$s*10+$b){
	echo $i."是回文数";
}
else{
	echo $i."不是回文数";
}
?>

输出结果为:

121是回文数

既然知道了如何判断一个三位数是不是回文数了,下面增加难度:我们来输出全部三位回文数

分析:输出全部三位回文数,那就是输出100~999内的回文数;因此我们可以使用for循环来限定范围

<?php
header("Content-type:text/html;charset=utf-8");
$num=0;
for($i=100;$i<1000;$i++){
	$b= intval($i/100);
	$s= ($i/10)%10;
	$g= $i%10;
	
	$hws=$g*100+$s*10+$b;
	if($i==$g*100+$s*10+$b){
		echo $i." ";
		$num++;
	}
	
}
echo "<br><br>三位回文数共有".$num."个";
?>

输出结果为:

1628755822613726

可以看出,我们在for循环的循环体中,使用一个计数器$num,在每次输出一个三位回文数后,自增1,这样就可以统计出100~999内有多少回文数了。

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

昵称

取消
昵称表情代码图片