学习目标:
c语言
学习内容:
同构数的算法
编写程序,打印1~999之间的全部同构数。所谓同构数,是指该数出现在它的平方数的右侧。如25^2=625,25出现在625的右端,25就是同构数。 ***输入提示信息:无 ***输入数据格式:无 ***输出提示信息:“Print all the isomorphism between 1-999:\n” ***输出数据格式:"%d " 注:输出提示信息请放在循环体之外 思路是:一个数的本身出现在它的平方数的右侧,那么它的平方数减去这个数的本身,最后的n位一定是0。n就是原数的位数。如评论所言,625是25的平方,那么625-25就等于600最后两位是0。所以只要判断最后n位是否为0就行了。
#include<stdio.h>
#include<math.h>
int main()
{
int a
=0,b
=0,c
=0,sqare
;
int i
=0,j
=0;
printf("Print all the isomorphism between 1-999:\n");
for(i
=1;i
<1000;i
++)
{
a
=i
*i
;
int pow
=1;
while(pow
<=i
)
pow
*=10;
if((a
-i
)%pow
==0)
printf("%d ",i
);
}
return 0;
}
(◦˙▽˙◦)