题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
程序分析
本题要求判断一个5位数是否为回文数,即判断它的各位数字从左往右和从右往左读是相同的。可以使用三种方法来实现:数学运算,字符串比较和数组比较。
解题思路
方法1: 数学运算
- 使用数学运算将输入的5位数进行反转。
- 比较反转后的数与原数是否相等。
方法2: 字符串比较
- 将输入的5位数转换为字符串。
- 使用字符串的索引,比较对应位置的数字是否对称。
方法3: 数组比较
- 将输入的5位数分解为数组,每个元素代表一位数字。
- 使用数组的索引,比较对应位置的数字是否对称。
实现代码及优缺点
方法1: 数学运算
#include <stdio.h>
int isPalindromeMath(int num) {
int originalNum = num;
int reversedNum = 0;
while (num != 0) {
int digit = num % 10;
reversedNum = reversedNum * 10 + digit;
num /= 10;
}
return originalNum == reversedNum;
}
int main() {
int num;
printf("Enter a 5-digit number: ");