c语言实现找出32位数中是回文数,且开方为整数的数
1个回答
展开全部
#include <stdio.h>
int ok(unsigned long n)
{
int i,m=0,a[35];
unsigned long t=n;
while(t)
{
a[m++]=t%10;
t/=10;
}
for(i=0;i<m/2;i++)
if(a[i]!=a[m-1-i])
return 0;
return 1;
}
int main()
{
int i,m=1<<16;
for(i=0;i<m;i++)
{
unsigned long n=i*i;
if(ok(n))
printf("%u\n",n);
}
return 0;
}
int ok(unsigned long n)
{
int i,m=0,a[35];
unsigned long t=n;
while(t)
{
a[m++]=t%10;
t/=10;
}
for(i=0;i<m/2;i++)
if(a[i]!=a[m-1-i])
return 0;
return 1;
}
int main()
{
int i,m=1<<16;
for(i=0;i<m;i++)
{
unsigned long n=i*i;
if(ok(n))
printf("%u\n",n);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询