题目要求:
有这样一类数字,它们顺着看和倒着看是相同的数,例如121、656、2332等,这样的数字叫做回文数字。编写一个程序,判断从键盘接收的数字是否为回文数字。
题目分析:
要想判断一个数是否是回文数字,必须从回文数字的特点入手。因为回文数字顺着看和倒着看是相同的数,所以可以通过这个特点来判断一个数字是否是回文数字。
显然可以通过将一个十进制数"倒置"的办法来判断它是否是回文数字。所谓倒置就是计算该十进制数倒过来后的结果。例如一个数是123,它的倒置结果为321,因为123不等于321,所以123不是回文数字。同理,一个数是121,它的倒置结果也为121,所以121是回文数字。
C语言版本:
#include <stdio.h>int isHuiWen(int n);
int reverse(int n);
void main(void) {
int n;
printf("inupt a Integer Number to judging is a huiwen Number!\n");
scanf("%d",&n);
if (isHuiWen(n)) {
printf("%d is a huiwen number!\n",n);
} else {
printf("%d is not a huiwen number!\n",n);
}
}
// 判断是否是回文数字 (返回值:0不是、1 是)
int isHuiWen(int n) {
int i;
i = reverse(n);
if (i == n) {
return 1;
} else {
return 0;
}
}
// 求n的倒置数 (比如1234的倒置数为4321)
int reverse(int n) {
int i,j=0;
i = n;
while (i) {
j = j*10 + i % 10;
i = i / 10;
}
return j;
}