判断回文数
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
判断回文数步骤如下:
1、取出键入数的每一位,可采用固定的模板:**for (i = n; i; i /= 10) { i % 10; }**我们可以用此模板取出键入数的每一位;
2、将取出的每一位数叠加成一个新的逆序数,具体采用迭代法原则,tmp = i % 10;sum = sum * 10 + tmp;;
3、判断新的数字sum与原来键入的数字n是否相等来打印结果,键入的数字是否是回文数。
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n;
int i;
int tmp, sum = 0;
printf("请输入一个数字:\n");
scanf("%d", &n);
for (i = n; i; i /= 10) {
tmp = i % 10;
sum = sum * 10 + tmp;
}
if (sum == n) {
printf("%d是回文数\n", sum);
}
else {
printf("%d不是回文数\n", sum);
}
system("pause");
return 0;
}