一个数恰好等于它的平方数的右端,这个数称为同构数。如5的平方是25,5是25的同构数;编写程序,找出1-1000之间全部的同构数。
设计思路:
1.采用for循环以及通过取余的方法来写该程序。定义一个整型变量i并对其赋值i=1。表达式一:i=1;表达式二:i<1111;表达式三:i++。
2.先执行表达式一,然后计算并判断表达式二的真假。如果为假,则结束循环,退出for语句;如果为真,则执行循环体语句“如果i在19之间(即是一位数)且i的平方后的个位数等于i自己本身,则输出符合条件的数i;如果i在1099之间(即是两位数)且i的平方后取最后两位整数数字等于i自己本身,则输出符合条件的数i;否则,i的平方后取最后三位整数数字等于i自己本身,则输出符合条件的数i”。
3.然后执行表达式三,然后按照以上循环步骤依次执行循环直到表达式二不成立结束for循环。
代码如下:
#include <stdio.h>
void main()
{
int i;
for (i = 1; i < 1111; i++)
if (i < 10 && i * i % 10 == i)
printf("%d,", i);
else if (i >= 10 && i < 100 && i * i % 100 == i)
printf("%d,", i);
else if (i * i % 1000 == i)
printf("%d,", i);
printf("\n");
}