学习目标:
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;//判断有几位是0
if((a-i)%pow==0)
printf("%d ",i);
}
return 0;
}
(◦˙▽˙◦)