c语言调用函数求回文数 c语言实现回调函数

C语言求回文数#includestdio.h
#includestring.h
#includestdlib.h
int svalue(long);
void main()
{
long i,j,k;
for(i=11;i1000;i++)
{
j=i*i;
k=j*i;
if(svalue(i)svalue(j)svalue(k))
printf("%ld\t%ld\t%ld\n",i,j,k);
else
continue;
}
}
int svalue(long m)
{
int a[9] = {0,0,0,0,0,0,0,0,0};//1000的立方为1000000000
int i = 0,j = 0;
a[0] = m / 100000000;
a[1] = m % 100000000 / 10000000;
a[2] = m % 10000000 / 1000000;
a[3] = m % 1000000 / 100000;
a[4] = m % 100000 / 10000;
a[5] = m % 10000 / 1000;
a[6] = m % 1000 / 100;
a[7] = m % 100 / 10;
a[8] = m % 10;
for(i=0;i9;i++)
{
if(0 == a[i])
{
j++;
}
else if(0 != a[i])
{
break;
【c语言调用函数求回文数 c语言实现回调函数】}
}
for(i=j;i9;i++)
{
if(a[i] != a[8+j-i])
{
return 0;
}
}
return 1;
}
c语言程序设计编求回文数的函数程序如下:
#include "stdio.h"
int main()
{
int u,m;
int sum=0;
printf("请输入要判断c语言调用函数求回文数的数u=");
scanf("%d",u);
m=u;
while(m)
{
sum=sum*10+m%10;
m=m/10;
}
if(sum==u)
printf ("u是回文数");
else
printf("u不是回文数");
printf("\n");
return 0;
}
程序运行结果c语言调用函数求回文数:
假设输入一回文数12321
c语言求回文数#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;i10000;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

推荐阅读