我的这个代码思路有没有漏洞?

//题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
//分析:定义整数i,完全平方数:a的平方等于b,b就是完全平方数 。a = sqrt(b);  
//如果某数等于他的平方根的平方,那么他就是完全平方数(根据整数的平方根可能会四舍五入得出) (√) 
//
#include<stdio.h> 
#include<math.h>
int main(){
	int i = -100, s1 , s2;
	int j1 , j2;
	printf("满足题意的数有:");
	for( ; ; i++){
		s1 = s2 = 0;
		s1 = i + 100;
		s2 = i + 268;
		j1 = sqrt(s1);
		j2 = sqrt(s2);
		if(s1 == pow(j1 , 2) && s2 == pow(j2 , 2)){
			printf("%5d",i);
		}
	}
}

【运行结果:】

            满足题意的数有:  -99   21  261 1581

疑问:虽然结果是对的,但是我找完全平方数的思路是否有漏洞?(“如果某数等于他的平方根的平方,那么他就是完全平方数”)

基本上都这么干的吧,没啥问题

能求出来不就好啦

要玩算法。来搞http://poj.org/

来打icpc

 你的方法是可以的,也可以用我这个方法

#include<stdio.h>
#include<math.h>
int main(){
	int i = -100, s1 , s2;
	float j1 , j2;
	printf("满足题意的数有:");
	for( ; ; i++){
		s1 = s2 = 0;
		s1 = i + 100;
		s2 = i + 268;
		j1 = sqrt(s1);
		j2 = sqrt(s2);
		if( j1==(int)j1 && j2==(int)j2){
			printf("%5d",i);
		}
	}
}

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632