高分求:C语言,求1000以内的回文数,以每行6个数输出

RT

#include<stdio.h>
int main()
{
int i,j,k,a,m=0;
for(i=1;i<1000;i++)
{
k=i;
a=0;
while(k!=0)
{
j=k%10;
k=k/10;
a=a*10+j;
}
if(a==i){printf("%d\t",i);m++;}
if(m==6){printf("\n");m=0;}
}
}
这个就可以了,你看看,不明白留言。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-19
#include
<iostream.h>
#include<stdlib.h>
#include<cstring>
int
fun(long
n)
{
int
i,strl,half;
char
temp[20];
ltoa(n,temp,10);/*把n按十进制拆分,拆分后每位数以字符形式存入数组temp中,如n=159,则temp[20]={'1','5','9'}*/
strl=strlen(temp);
half=strl/2;
for(i=0;i<half;i++)
if(temp[i]!=temp[--strl])
break;
if(i>=half)
return
1;
else
return
0;
}
void
main()
{
int
i,num=0;
for(i=11;i<1000;i++)
{
if(fun(i))
{
cout<<i<<'
';
num++;
if(num%6==0)
{
cout<<endl;
}
}
}
}
第2个回答  2010-04-13
#include <iostream.h>
#include<stdlib.h>
#include<cstring>
int fun(long n)
{
int i,strl,half;
char temp[20];
ltoa(n,temp,10);/*把n按十进制拆分,拆分后每位数以字符形式存入数组temp中,如n=159,则temp[20]={'1','5','9'}*/
strl=strlen(temp);
half=strl/2;
for(i=0;i<half;i++)
if(temp[i]!=temp[--strl])
break;
if(i>=half)
return 1;
else
return 0;
}
void main()
{
int i,num=0;
for(i=11;i<1000;i++)
{
if(fun(i))
{
cout<<i<<' ';
num++;
if(num%6==0)
{
cout<<endl;
}
}
}
}
第3个回答  2010-04-13
#include <stdio.h>
void main()
{
int i,count=0;
for(i=1;i<1000;i++)
{
if(huiyn(i))
{
printf("%-5d",i);count++;
if(count%6==0) printf("\n");
}
}
getch();
}
int huiyn(int num)
{
int m,r=0;
m=num;
while(m)
{
r=r*10+m%10;
m/=10;
}
if(num==r) return 1;
else return 0;
}
第4个回答  2010-04-13
试试这个

#include<stdio.h>

#define MIN 10
#define MAX 1000

int jsValue(long n)
{
long i=0,m=n;
while(m!=0)
{
i=i*10+m%10;
m=m/10;
}
if(i==n)
return 1;
else
return 0;
}

void main()
{
int i, num = 0;
for(i = MIN; i < MAX; i++)
{
if(jsValue(i))
{
printf("%4d ", i);
num++;
if(num%6== 0)
{
printf("\n");
}

}
}
getchar();
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网