leetcode 367.Valid Perfect Square

xiaoxiao2021-02-28  108

题目来源:leetcode 367

题目很简单,判断一个数是不是完全平方数(禁止使用库函数sqrt等),直接二分查找就可以。注意(x/2+1)的平方一定大于x,所以一开始搜索的范围就是从1到x/2+1. 注意go语言中的循环关键字只有for,还有if else语句中括号的位置。 package main import ("fmt") func main(){ fmt.Printf("%t %t\n",isPerfectSquare(16),isPerfectSquare(55)) fmt.Printf("%t %t\n",isPerfectSquare(144),isPerfectSquare(20)) } func isPerfectSquare(num int) bool{ var left,right int left=1;right=num/2+1; for left<=right{ var mid int mid=left+(right-left)/2 if mid*mid==num{ return true }else if mid*mid<num{ left=mid+1 }else{ right=mid-1 } } return false } 运行截图:
转载请注明原文地址: https://www.6miu.com/read-66010.html

最新回复(0)