#include<stdio.h>
int main()
{
int n;
void hui(int x);
scanf("%d",&n);
hui(n);
return 0;
}
void hui(int x)
{
int a=1,x1=0,i,x2=x,x3=x;
for(i=0;x2!=0;i++)
{
x2=x2/10;
a=a*10;
}a=a/10;
for(i;i>=0;i--)
{
x1=(x%10)*a+x1;a=a/10;x=x/10;
}
if(x1==x3)
printf("%d",x3);
else
{
printf("%d ",x3);
hui(x1+x3);
}
}
日常一练,函数的递归,之前有一个另外的回文数的题
#include<stdio.h>
int main()
{
int n,m,i;
scanf("%d %d",&n,&m);
for(i=n;i<=m;i++)
if(hui(i)==1)
printf("%d ",i);
return 0;
}
int hui(int x)
{
int a=1,x1=0,i,x2=x,x3=x;
for(i=0;x2!=0;i++)
{
x2=x2/10;
a=a*10;
} a=a/10;
for(i;i>=0;i--)
{
x1=(x%10)*a+x1;
a=a/10;
x=x/10;
}
if(x1==x3)
return 1;
else
return 0;
}
其实本来有偷懒,直接把下面的复制过去了,又加了一个函数判定,结果弄巧成拙,写了一大堆,结果还没对,就只能再大刀阔斧的改:( 同样要再想一遍,还废了时间,以后不偷懒,对每一道题都当重要的新题,不偷工减料,认真对待学业。
加油加油!!!!