C语言 找一个数n(n<256),其平方数为回文数。我的程序感觉算法没错,为何只能输出一部分,就停止运行? 10
#include<stdio.h>intmain(){unsignedn,a[6],b=1,t,i,x,m,c;unsignedy;scanf("%d",&n);for(...
#include<stdio.h>
int main()
{
unsigned n, a[6], b=1, t, i, x, m, c;
unsigned y;
scanf("%d",&n);
for(i=1;i<6;i++) a[i]=0;
for(t=1;t<n;t++)
{y=t*t;
for(i=1;i<6;i++)
{
b*=10;
a[i]=(y%b)/(b/10);
}
for(i=5;i>=1;i--)
{
if(a[i]!=0)
{x=i;
break;
}
}
printf("%1d\n",a[4]);
m=0;c=0;
if(y<10) printf("%d\n",t);
for(i=1;i<=x/2;i++)
{
if(a[i]==a[x-i+1])
{
m++;c++;
}
}
if(m==(x/2)&&c!=0)
{printf("%d\n",t);}
}
return 0;
} 展开
int main()
{
unsigned n, a[6], b=1, t, i, x, m, c;
unsigned y;
scanf("%d",&n);
for(i=1;i<6;i++) a[i]=0;
for(t=1;t<n;t++)
{y=t*t;
for(i=1;i<6;i++)
{
b*=10;
a[i]=(y%b)/(b/10);
}
for(i=5;i>=1;i--)
{
if(a[i]!=0)
{x=i;
break;
}
}
printf("%1d\n",a[4]);
m=0;c=0;
if(y<10) printf("%d\n",t);
for(i=1;i<=x/2;i++)
{
if(a[i]==a[x-i+1])
{
m++;c++;
}
}
if(m==(x/2)&&c!=0)
{printf("%d\n",t);}
}
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询