基础练习 回文数
问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
我写了比较多的方法,虽然在vc++的平台能运行起,但在蓝桥杯的平台都运行不起,不过大家可以看一看。
第一种方法:
#include<stdio.h>
int isHuiwen(int n) //原来这儿用的是bool
{
int a[4];
int j;
int flag;
for(j=0;j<4;j++)
{
a[j]=n%10;
n=n/10;
}
if(a[0]==a[3] && a[1]==a[2])
{
flag=1;
}else{
flag=0;
}
return flag;
}
int main()
{
int i;
for(i=1000;i<9999;i++)
{
if(isHuiwen(i))
{
printf("%d ",i);
}
}
printf("\n");
return 0;
}
第二种方法:
#include<stdio.h>
int main()
{
int i,j,t;
int a[4];
for(i=1000;i<=9999;i++)
{
t=i;
for(j=0;j<4;j++)
{
a[j]=t%10;
t=t/10;
}
/*for(j=0;j<4;j++)
{
printf("%d ",a[j]);
}
if(a[0]==a[3] && a[1]==a[2])
{
printf("%d ",i);
}
}
printf("\n");
return 0;
}
第三种方法是在网上看的网友的,能在蓝桥杯上运行,后来终于是发现了规律,感觉写得越简单就越能识别好像
#include<stdio.h>
int main()
{
int i;
int a1,a2,a3,a4;
for(i=1000;i<10000;i++){
a1=i/1000%10;
a2=i/100%10;
a3=i/10%10;
a4=i%10;
if(a1==a4&&a2==a3)
printf("%d\n",i);
}
return 0;
}