(1)
#include "stdio.h"
#include "stdlib.h"
#include <string.h>
int main(void){
int i;
char a[5];
for(i=101;i<9000;i++)
if(i==atoi(strrev(itoa(i,a,10))))
printf("%d ",i);
printf("\n");
return 0;
}
(2)
#include "stdio.h"
int main(void){
int i,j,k;
for(i=101;i<9000;i++){
for(j=i,k=0;j;k++,j/=10);
if(k==3 && i/100==i%10 || k==4 && i/1000==i%10 && i/100%10==i/10%10)
printf("%d ",i);
}
printf("\n");
return 0;
}
追问谢谢,不过暂时我还看不懂你写的😱
追答第一个是把数字变成字符串,然后把字符串倒过来,再把这个倒了的字符串变成数字,若与原来数字相等则为回文数。
第二个你应该看懂,否则这题你就无法做下去了。这代码的原理是先测数字位数,若是3位(k==3时),则比较一下个位和百位,若是4位(k==4),则要分别比较个位和千位以及十位和百位,若它们的比较结果是相等的则是回文数。