【问题描述】
若将 n 的各位数字反向排列所得的自然数n1与 n相等, 则称n为回文数.例如,若 n=1234321, 则称n为回文数.若 n=1234567, 则n不是回文 数。
如果一个数既是回文数,又是某个数的平方,则这样的数字称为平方回数。 例如:121
编写两个函数,一个用于判断n是不是回文数,一个用于判断n是不是平方数,main函数调用这两个函数找出1000内的回文平方数。
【输入形式】
无输入
【输出形式】
依次输出1000以内的回文平方数
【样例输入】
无输入
【样例输出】
1 4 9 121 484 676
源代码如下:
#include <stdio.h>
int hw(int a);//定义回文函数
int pf(int b);//定义平方函数
int main(int argc, char *argv[])
{
int m,x,y;
for(m=1;m<=1000;m++)
{
x=hw(m);
y=pf(m);
if(x+y==2)
{
printf("%d ",m);
}
else
{
continue;
}
}
return 0;
}
int hw(int a)
{
int newen,c;
newen=0;
c=a;
while(a>0)
{
newen=newen*10+a%10;
a/=10;
}
if(c==newen)
{
return 1;
}
else
{
return 0;
}
}
int pf(int b)
{
int i,y;
for(i=1;i<=b;i++)
{
y=i*i;
if(y==b)
{
return 1;break;
}
if(y!=b)
{
continue;
}
if(i==b)
{
return 0;
}
}
}