C语言回文数问题在线等,22点下线

来源:百度知道 编辑:UC知道 时间:2024/09/19 19:21:02
long _digun(long *LPshu)
{
long Lyushu=0,Lshu2=0,Lfanhui=0;
printf("a%ld %d \n",*LPshu,i);
while(*LPshu/10)
{
Lyushu=*LPshu%10;
*LPshu=*LPshu/10;
Lshu2=Lyushu+_digun(LPshu)*10;
// printf("%ld %ld ||\n",Lyushu,Lshu2);
}
if(!Lyushu)
{
Lshu2=Lshu2*10+*LPshu;
}

return Lshu2;
}
main()
{
long Lshu,Lshu2;
printf("qin shu ru 5 wei di 1 ge shu :" );
scanf("%ld",&Lshu);
Lshu2=Lshu;

if(_digun(&Lshu)==Lshu2)
printf("%ld shi hui wen shu ",Lshu);
else
printf("\n%ld bu shi hui wen shu ",Lshu);
}
递归调用我基本已经稿定了,但是 调回的数却并没有反向,请高手指点。 比如输入 12345 它返回 12345 我本意是要他返回 54321

太麻烦:

#include<stdio.h>
#include<math.h>
int isHuiWen(long math) //返回这个数是否回文数:返回1是 0不是
{
int length=0,temp=math;
while(temp>0){
length++;
temp=(int)(temp/10);
}
for(int i=0;i<length/2;i++)
{

if( (int)(math/pow(10,length-i-1))%10==(int)(math/pow(10,i))%10 ) continue;
else return 0;
}
return 1;
}
main()
{
int check=0,math=0;
printf("请输入一个数:\n");
scanf("%d",&math);
check=isHuiWen(math);
if(check==1) printf("%d是一个回文数\n",math);
else printf("%d不是一个回文数\n",math);
}