未分類

Sqrt(x)

Sqrt(x)

Implement int sqrt(int x).

Compute and return the square root of x.

提示 解題應用
Math 規律觀查

Default:

1
2
3
func mySqrt(x int) int {
}

解答思路:

這題姑且只用最簡單的方式去解決,當然有人用牛頓法的方法來找出結果,不過一開始我就是只用最簡單的方式去處理問題,至於用數學的方式來看待題目就等到回頭復習時再來修正了,畢竟我沒把握能夠當場想到用牛頓法來處理類似的問題,如果要找出一數值開根號後的結果(不取小數點),最簡單的方式就是用迴圈從1的平方開始一直到平方值超過該數值,此時前一個未超過該數值的平方值其遞增數就會是我們要找的結果。

程式碼解說:

很簡單的利用迴圈從1的平方開始一直到平方值超過該數值,此時如果遞增數的平方值未超過該數值,就用一變數暫存當下的遞增數,待迴圈結束後便直接回傳先前的暫存值

1
2
3
4
5
var tmp int
for i := 1; i*i <= x; i++ {
tmp = i
}
return tmp

完整程式碼:

1
2
3
4
5
6
7
func mySqrt(x int) int {
var tmp int
for i := 1; i*i <= x; i++ {
tmp = i
}
return tmp
}

總結:

如果要找出一數值開根號後的結果(不取小數點),最簡單的方式就是用迴圈從1的平方開始一直到平方值超過該數值,此時前一個未超過該數值的平方值其遞增數就會是我們要找的結果。

分享到