一、题目描述
回文数(Palindrome Number)是一个正读和反读都一样的数。例如,121、1331、12321 都是回文数。
题目要求:输出五位数的所有回文数,并统计有多少个回文数。
二、代码
public class HuiWen {
public static void main(String[] args) {
int count = 0; // 用于统计回文数的数量
for (int i = 10000; i < 100000; i++) {
int w = i / 10000; // 万位
int q = (i / 1000) % 10; // 千位
int b = (i / 100) % 10; // 百位
int s = (i / 10) % 10; // 十位
int g = i % 10; // 个位
if (w == g && q == s) {
System.out.println(i + " 是一个回文数");
count++; // 统计回文数的个数
}
}
System.out.println("共有 " + count + " 个五位数回文数");
}
}
三、输出结果
四、代码分析
声明一个整型变量
count
,用于统计找到的五位数回文数的数量。使用一个
for
循环遍历所有五位数,即从10000到99999。在循环体内,使用取模和整除操作来提取每个数的万位、千位、百位、十位和个位数字。
int w = i / 10000;
提取万位数字。int q = (i / 1000) % 10;
提取千位数字。int b = (i / 100) % 10;
提取百位数字(这里虽然提取了百位数字,但在后续的回文数判断中并未使用到)。int s = (i / 10) % 10;
提取十位数字。int g = i % 10;
提取个位数字。判断该数是否为回文数。在这个特定的五位数情况下,只需要比较万位和个位数字是否相同,以及千位和十位数字是否相同。因为百位数字对于五位数回文数的判断没有影响,所以这里没有使用到
b
变量。
if (w == g && q == s) { ... }
判断是否是回文数。如果满足回文数的条件,就打印出该数,并增加
count
的值。循环结束后,打印出找到的五位数回文数的总数。
纵使眼前迷雾蒙蒙,我仍相信会有美丽的风景,喜欢我的话就请关注我叭~