jiayinhao 2021-05-20 15:40 采纳率: 91.7%
浏览 49
已采纳

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

//题目:一个整数,它加上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

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

  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2021-05-20 15:52
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?