“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
10进制下回文数判断
//判断回文数12321
#include <stdio.h>
int main()
{
int num = 0;
int i = 0;
int sum = 0;
int tmp = 0;
scanf_s("%d", &num);
for (i = num; i; i /= 10)
{
tmp = i % 10;
sum = sum * 10 + tmp;
}
if (sum == num)
printf("是回文数");
else
printf("不是回文数");
return 0;
}
任意进制下回文数判断
#include <stdio.h>
int main()
{
int num = 0;
int i = 0;
int sum = 0;
int tmp = 0;
int sp = 0;
scanf_s("%d", &num);
scanf_s("%d", &sp);
for (i = num; i; i /= sp)
{
tmp = i % sp;
sum = sum * sp+ tmp;
}
if (sum == num)
printf("%d进制下是回文数",sp);
else
printf("%d进制不是回文数",sp);
return 0;
}