编写程序,打印1~999之间的全部同构数。所谓同构数,是指该数出现在它的平方数的右侧。如25^2=625,25出现在625的右端,25就是同构数
该问题的难点在于如何判断i是否与i平方后的数的右侧相等:
可以通过去余的方法,十位数字与10相除取余得到它的各位数字,百位数字与100相除的到管它的10位与个位数字。
#include<stdio.h>
int main(void)
{
int a, b, i;
printf("Print all the isomorphism between 1-999:\n");
for (i = 1; i <= 999; i++)
{
if (i <= 9)
{
if (i * i % 10 == i)
printf("%d ", i);
}
else if (i < 100)
{
if (i * i % 100 == i)
printf("%d ", i);
}
else
{
if (i * i % 1000 == i)
printf("%d ", i);
}
}
}