永发信息网

c语言求打印100000以内的所有回文数

答案:3  悬赏:50  手机版
解决时间 2021-04-06 23:33
  • 提问者网友:放下
  • 2021-04-05 22:51
c语言求打印100000以内的所有回文数
最佳答案
  • 五星知识达人网友:等灯
  • 2021-04-05 23:43

#include 
#define N 100000  //定义符号常量
//判断是否为回文数的函数
int isHuiwenNumber(int n)
{
    int sum,tmp;
    tmp=n;
    sum=0;
    while(n)  //从低位到高位分解n的每位的数字,然后依次相加
    {
        sum=sum*10+n%10;
        n/=10;
    }
    if(tmp == sum) //如果重新每位求和的值等于原值,则该数为完数,返回1,否则返回0
        return 1;
    else
        return 0;
}
int main()
{
    int i,count;
    for(i=0,count=0;i    {
        if(isHuiwenNumber(i))  //调用函数,如果条件为真,执行if语句体
        {
            printf("%-6d",i);   //输出回文数
            count++;
            if(count % 10 == 0) //每行输出10个后便换行
                printf("
");
        }
    }
    printf("
");
    return 0;
}由于运行结果内容太多,故部分运行结果截图如下:


全部回答
  • 1楼网友:大漠
  • 2021-04-06 01:50
#include 
unsigned long reverse(unsigned long n);
int main(void) 
{
unsigned long i;
for(i=0;i<100000;++i)
{
if(i==reverse(i))
{
printf("%lu ",i);
}
}
return 0;
}
unsigned long reverse(unsigned long n)
{
unsigned long t;
for(t=0;n;n/=10)
{
t=t*10+n%10;
}
return t;
}
  • 2楼网友:酒醒三更
  • 2021-04-06 01:16
#include 
int huiwen(long x)
{
long y=0,xx=x;
while(xx!=0){
y=y*10+xx%10;
xx/=10;
}
if (x==y) return 1;
else return 0;
}
int main(){
long i;
int count=0;
for(i=0;i<=100000;i++)
if (huiwen(i)) {
count++;
printf("%7ld",i);
if (count % 10==0) printf(" ");
}
printf(" ");
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯