未分類

Valid Perfect Square

Valid Perfect Square

Given a positive integer num, write a function which returns True if num is a perfect square else False.

Note:

Do not use any built-in library function such as sqrt.

Example 1:

1
2
Input: 16
Returns: True

###Example 2:

1
2
Input: 14
Returns: False
提示 解題應用
Math 規律觀查

Default:

1
2
3
func isPerfectSquare(num int) bool {
}

解答思路:

這題要判斷是否為平方數,且不能使用math的library,所以我們就從1的平方開始試,直到超過其值都還沒有發現某數的平方值等同於其值,最後才回傳false,如果中間有相同的結果則回傳true。

程式碼解說:

用一變數來儲存我們計算平方值的結果,而從1來開始平方,如果計算出來的平方值等同其值,就回傳true,否則就繼續將常數+1,一直到算出的平方值超過其值,表示該值不為平方數回傳false

1
2
3
4
5
6
7
8
9
10
var square int
count := 1
for square < num {
square = count * count
if square == num {
return true
}
count++
}
return false

完整程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
func isPerfectSquare(num int) bool {
var square int
count := 1
for square < num {
square = count * count
if square == num {
return true
}
count++
}
return false
}

總結:

要判斷一數是否為平方數,除了用開根號的方式來判斷是否為整數之外,也可以從1的平方開始嘗試,一直到超過其值都還沒有發現某數的平方值等同於其值,最後才回傳false,如果中間有相同的結果則回傳true。

分享到