C语言用递归判断数字是否为回文数

不能使用数组 实在是不会啊 我自己编的那个太麻烦了 有简单的编法吗?多谢!!

首先求出数字的长度n,
然后判断第1位和第n位是否相等
第i位和第n+1-i位是否相等。对i循环

单独写一个函数求出这个数字第i位的大小
int GetI(int i,int number){
if(i==1)
return number%10;
return GetI(i-1,number/10);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-01
我是菜鸟,自己琢磨的一个,见笑。
#include <stdio.h>
int fac(int n)
{
int m,flag=1,i,j,t,s;
if(n>=0&&n<10)
return (1);
else
{
i=0;
m=n%10;
t=n;
while(t/10>0)
{
t=t/10;
i++;
}
s=t;
for(j=1;j<=i;j++)
{
s=s*10;
}

if(m==t)
return(fac((n-m-s)/10));
else
return(0);

}
}
void main()
{
int a;
int flag;
scanf("%ld",&a);
flag=fac(a);
if(flag>0)
printf("yes");
else
printf("no");
}
相似回答