问题遇到的现象和发生背景
求同构数。
【问题描述】
设b是a的平方,若a与b的尾部相同,则称a是同构数。例如,25的平方是625,所以25是同构数。
编写程序满足如下要求:
输入两个整数m和n,找出m、n之间全部的同构数(包括m和n本身)。
【输入形式】
输入数据范围的下限m和上限n,要求m和n都为整数,m和n之间用一个空格分隔。
【输出形式】
按照由小到大的顺序输出所有同构数,每个整数占一行。若在该范围内没有同构数,则输出字符串No Answer。
求同构数。
【问题描述】
设b是a的平方,若a与b的尾部相同,则称a是同构数。例如,25的平方是625,所以25是同构数。
编写程序满足如下要求:
输入两个整数m和n,找出m、n之间全部的同构数(包括m和n本身)。
【输入形式】
输入数据范围的下限m和上限n,要求m和n都为整数,m和n之间用一个空格分隔。
【输出形式】
按照由小到大的顺序输出所有同构数,每个整数占一行。若在该范围内没有同构数,则输出字符串No Answer。
循环计算每个数的平方数,判断数的长度,然后比较平方后的值的对应长度位数是否等于该数
#include <stdio.h>
int main()
{
int m,n,i,t,k,count=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
k = i*i;
t = i;
while(t>0)
{
if(t%10 != k%10)
break;
t = t/10;
k = k/10;
}
if(t==0)
{
printf("%d\n",i);
count++;
}
}
if(count==0)
printf("No Answer");
return 0;
}