目录
C 语言实现
Python 实现
Java 实现
Js 实现
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
程序分析:学会分解出每一位数。
C 语言实现
#include <stdio.h>
int main() {
int x;
printf("请输入 5 位数字:");
scanf("%d", &x);
// 检查输入是否为 5 位数
if (x < 10000 || x > 99999) {
printf("输入的数字不是 5 位数\n");
return 1; // 退出程序
}
// 分解出各位数字
int ge = x % 10; // 个位
int shi = (x / 10) % 10; // 十位
int qian = (x / 1000) % 10; // 千位
int wan = (x / 10000) % 10; // 万位
// 判断是否为回文数
if (ge == wan && shi == qian) {
printf("这是回文数\n");
} else {
printf("这不是回文数\n");
}
return 0; // 正常结束程序
}
- 输入检查:程序首先检查输入的数字是否为 5 位数。如果不是,输出提示并退出。
- 分解数字:使用取余和整除运算符分解出万位、千位、十位和个位的数字。
- 回文判断:通过比较个位与万位、十位与千位来判断是否为回文数。
- 输出结果:根据判断结果输出相应的信息。
Python 实现
def is_palindrome(num):
# 将数字转换为字符串
num_str = str(num)
# 检查是否为 5 位数
if len(num_str) != 5:
return False
# 判断回文数
return num_str == num_str[::-1]
# 主程序
if __name__ == "__main__":
x = int(input("请输入 5 位数字:"))
if is_palindrome(x):
print("这是回文数")
else:
print("这不是回文数")
- 函数定义:
is_palindrome(num)
函数用于判断给定的数字是否为回文数。- 首先将数字转换为字符串。
- 检查字符串的长度是否为 5 位。
- 使用切片
[::-1]
反转字符串并与原字符串进行比较。
- 主程序:
- 使用
input()
函数获取用户输入,并将其转换为整数。 - 调用
is_palindrome()
函数判断输入的数字是否为回文数,并输出相应的结果。
- 使用
Java 实现
import java.util.Scanner;
public class PalindromeChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入 5 位数字:");
int x = scanner.nextInt();
// 检查输入是否为 5 位数
if (x < 10000 || x > 99999) {
System.out.println("输入的数字不是 5 位数");
return; // 退出程序
}
// 分解出各位数字
int ge = x % 10; // 个位
int shi = (x / 10) % 10; // 十位
int qian = (x / 1000) % 10; // 千位
int wan = (x / 10000) % 10; // 万位
// 判断是否为回文数
if (ge == wan && shi == qian) {
System.out.println("这是回文数");
} else {
System.out.println("这不是回文数");
}
scanner.close(); // 关闭扫描器
}
}
- 导入 Scanner 类:用于获取用户输入。
- 主类和主方法:定义
PalindromeChecker
类和main
方法。 - 用户输入:使用
Scanner
获取用户输入的数字。 - 输入检查:检查输入的数字是否为 5 位数。如果不是,输出提示并退出。
- 分解数字:使用取余和整除运算符分解出万位、千位、十位和个位的数字。
- 回文判断:通过比较个位与万位、十位与千位来判断是否为回文数。
- 输出结果:根据判断结果输出相应的信息。
- 关闭扫描器:在程序结束时关闭
Scanner
对象以释放资源。
Js 实现
function isPalindrome(num) {
// 将数字转换为字符串
const numStr = num.toString();
// 检查是否为 5 位数
if (numStr.length !== 5) {
return false;
}
// 判断回文数
return numStr === numStr.split('').reverse().join('');
}
// 主程序
const input = prompt("请输入 5 位数字:");
const x = parseInt(input, 10);
if (isPalindrome(x)) {
console.log("这是回文数");
} else {
console.log("这不是回文数");
}
- 函数定义:
isPalindrome(num)
函数用于判断给定的数字是否为回文数。- 首先将数字转换为字符串。
- 检查字符串的长度是否为 5 位。
- 使用
split('')
将字符串分割成字符数组,reverse()
反转数组,join('')
将数组重新组合成字符串,并与原字符串进行比较。
- 主程序:
- 使用
prompt()
函数获取用户输入,并将其转换为整数。 - 调用
isPalindrome()
函数判断输入的数字是否为回文数,并输出相应的结果。
- 使用
注意:
- 在浏览器中运行时,
prompt()
会弹出一个输入框,用户可以在其中输入数字。 - 在 Node.js 环境中,你可以使用
readline
模块来获取用户输入,或者直接在代码中指定一个数字进行测试。
以上实例输出结果为:
请输入 5 位数字:12321
这是回文数
请输入 5 位数字:12345
这不是回文数