成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Java使用二分查找法獲取非負(fù)整數(shù)的平方根

題目要求計(jì)算并返回非負(fù)整數(shù)num的平方根,結(jié)果只保留整數(shù)部分,小數(shù)部分將被舍去。為了提高算法效率并避免整數(shù)越界溢出問(wèn)題,我們可以使用二分查找法。 使用二分查找法獲取非負(fù)整數(shù)的平方根 我們將起點(diǎn)lo

題目要求計(jì)算并返回非負(fù)整數(shù)num的平方根,結(jié)果只保留整數(shù)部分,小數(shù)部分將被舍去。為了提高算法效率并避免整數(shù)越界溢出問(wèn)題,我們可以使用二分查找法。

使用二分查找法獲取非負(fù)整數(shù)的平方根

我們將起點(diǎn)low定為0,終點(diǎn)high定為參數(shù)值的一半,通過(guò)二分查找的方式來(lái)獲取結(jié)果值。為了防止平方運(yùn)算中出現(xiàn)溢出越界的情況,我們需要將low、high以及中值mid全部聲明為long類型。

```java public int mySqrt(int num) { if (num 0 || num 1) { return num; } long low 0; long high num / 2; while (low < high) { long mid (low high) / 2; long square mid * mid; if (square num) { return (int)mid; } else if (square < num) { low mid 1; } else { high mid - 1; } } return (int)high; } ```

測(cè)試代碼示例

在主方法中,我們調(diào)用上述方法獲取指定值的平方根,并將結(jié)果打印到控制臺(tái)。

```java public static void main(String[] args) { Solution solution new Solution(); int num 16; int result (num); ("The square root of " num " is: " result); } ```

運(yùn)行測(cè)試代碼

運(yùn)行主方法,觀察控制臺(tái)的輸出結(jié)果,如果符合預(yù)期,則說(shuō)明算法沒(méi)有問(wèn)題。

``` The square root of 16 is: 4 ```

算法考點(diǎn)分析

這個(gè)算法題目主要考察利用二分查找法來(lái)提升效率,并且在計(jì)算過(guò)程中需要注意應(yīng)對(duì)越界溢出的問(wèn)題。為了避免越界問(wèn)題,我們將變量聲明為long類型,這樣可以處理較大的整數(shù)范圍。通過(guò)合理地選擇起點(diǎn)和終點(diǎn),每次迭代都可以減少問(wèn)題規(guī)模,從而快速找到平方根的整數(shù)部分。

標(biāo)簽: