69. x 的平方根

image.png

  1. package main
  2. import "fmt"
  3. func mySqrt(x int) int {
  4. if x==0 ||x==1{
  5. return x
  6. }
  7. left :=0
  8. right :=x
  9. for left<=right{
  10. mid := (left+right)>>1
  11. r := mid*mid
  12. if r==x {
  13. return mid
  14. }else if r>x {
  15. right =mid-1
  16. }else {
  17. left = mid+1
  18. }
  19. }
  20. return left-1
  21. }
  22. func main() {
  23. fmt.Println(mySqrt(4))
  24. fmt.Println(mySqrt(6))
  25. fmt.Println(mySqrt(8))
  26. fmt.Println(mySqrt(10))
  27. }

image.png