c语言求回文数

定义一个函数,判断数x是否为回文数,如果是则返回1,否则返回0,在主函数中调用该函数,求1~10000的回文数的个数

第1个回答  推荐于2017-12-15
#include "stdio.h"
int ispal(int n)
{
int m=0;
int t=n;
while(t)
{
m=m*10+t%10;
t/=10;
}
return m==n;
}
void main()
{
int i;
int cnt=0;
for(i=1;i<10000;i++)
{
if(ispal(i))
{
cnt++;
printf("%d\n",i);
}
}
printf("合计:%d个\n",cnt);
}

1
2
3
4
5
6
7
8
9
11
22
33
44
55
66
77
88
99
101
111
121
131
141
151
161
171
181
191
202
212
222
232
242
252
262
272
282
292
303
313
323
333
343
353
363
373
383
393
404
414
424
434
444
454
464
474
484
494
505
515
525
535
545
555
565
575
585
595
606
616
626
636
646
656
666
676
686
696
707
717
727
737
747
757
767
777
787
797
808
818
828
838
848
858
868
878
888
898
909
919
929
939
949
959
969
979
989
999
1001
1111
1221
1331
1441
1551
1661
1771
1881
1991
2002
2112
2222
2332
2442
2552
2662
2772
2882
2992
3003
3113
3223
3333
3443
3553
3663
3773
3883
3993
4004
4114
4224
4334
4444
4554
4664
4774
4884
4994
5005
5115
5225
5335
5445
5555
5665
5775
5885
5995
6006
6116
6226
6336
6446
6556
6666
6776
6886
6996
7007
7117
7227
7337
7447
7557
7667
7777
7887
7997
8008
8118
8228
8338
8448
8558
8668
8778
8888
8998
9009
9119
9229
9339
9449
9559
9669
9779
9889
9999
合计:198个
请按任意键继续. . .本回答被提问者采纳
第2个回答  2012-04-20
#include<stdio.h>
#include<stdlib.h>
int k,ans;
int pd(int x)
{
int a[10],i=0,j;
while(x!=0)
{a[++i]=x%10;
x/=10;}
for(j=1;j<=i/2;j++)
if(a[j]!=a[i-j+1])return 0;
return 1;
}
int main()
{
for(k=1;k<=10000;k++)
ans+=pd(k);
printf("%d\n",ans);
system("pause");
return 0;
}
相似回答