问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
1.常规做法
#include <cstdio>
int is_palindrome(int n){
int a[5],num=0;
do{
a[num++]=n%10;
n/=10;
}while(n);
for(int i=0;i<num/2;i++) if(a[i]!=a[num-1-i]) return 0;
return 1;
}
int main(){
for(int i=1000;i<=9999;i++)
if(is_palindrome(i)) printf("%d\n",i);
return 0;
}
2.由题中锦囊可得另外一种比较简便的方法
#include <cstdio>
int main(){
int a,b,c,d;
for(int i=1000;i<=9999;i++){
a=i/1000;
b=i/100%10;
c=i%100/10;
d=i%10;
if(a==d&&b==c) printf("%d\n",i);
}
return 0;
}