判断整数是否是“同构数”
“同构数”是指这个数出现在它的平方数的右边
5的平方是25,5是25中右侧的数
- 方法1。整数平方,循环判断商是否大于0,则知其是几位数,求余与整数进行比较。
#include
int main(void)
{
printf("请输入同构数:n");
int x;
scanf("%d",&x);
int a = 10;
while ((x * x) / 10 > 0)
{
if ((x * x) % a == x)
{
printf("%d是",x);
}
a = a * 10;
}
printf("%d不是",x);
return 0;
}
- 方法2。整数平方,然后求余与整数进行比较。
#include
int tgs(int s)
{
int k;
k = s * s;
if ((k % 10 == s) || (k % 100 == s))
{
return 1;
}
else
{
return 0;
}
}
int main(void)
{
int x,y;
printf("请输入同构数:n");
scanf("%d",&x);
if (x > 100)
{
printf("输入错误:n");
}
y = tgs(x);
if (y)
{
printf("%d是",x);
}
else
{
printf("%d不是",x);
}
return 0;
}