如果有一个正整数从左、右来读都是一样的,则称为回文式数(简称回数);比如101,32123,
999都是回数。求10000以内的所有回数。
判断的思路就是,通过循环依次把m的个位,十位,百位...上的数取出来,与sum*10相加。这样得到的数sum就是m颠倒之后的数,如果两者相等,那就是回文数。
while(a)
{
sum=sum*10+a%10;
a=a/10;
}
程序如下:
#include<stdio.h>
int main()
{
int i;//循环变量
int count=0;//循环计数
int sum;//逆序后这个数字是多少
int a;
for(i=1;i<10000;++i)
{
a=i;
sum=0;
while(a)
{
sum=sum*10+a%10;
a=a/10;
}
if(sum==i)//逆序后的数字与原来的数字相比较看是否相等
{
printf("%8d",i);
count++;
if(count%5==0)
printf("\n");
}
printf("\n");
}
return 0;
}
原文地址:http://blog.csdn.net/u012110719/article/details/41204515