#include<stdio.h>
main()
{
//input
int num ;
while( 1 )
{
scanf("%d", &num );
int i = 1;
int temp = 0;
for ( ; i<= num ; i++ )//point 1
{
temp = i*i ;
if ( temp == num )
{
printf("%d*%d=%d\n", i, i, num );
break ;
}else if ( temp > num )//point 2
{
printf ("No\n");
break;
}
}
}
}
遇到的点:
point 1: 此处为 <= 因为 1*1=1
point 2: 没有考虑 i*i < num 的情况,因为如果小于,说明还有找到的可能,继续循环就可以了。此处当 i*i > num 时,说明随着 i 的增大,已经不可能找到根了,所以此次查找失败,直接退出循环,等待用户的下一次输入