實現 int sqrt(int x) 函式。計算並返回 x 的平方根,其中 x 是非負整數。
看到這個題,當時想到了利用二分法,查詢x的平方根。寫出了如下**
public int mysqrt(int x)
else if(m * m > x || m*m <0) else
} return l;
}
但是這個方法並不適用大數,因為mm有可能會溢位,則得到的負數,因此加入判斷條件(mm<0),但這依然有可能溢位太嚴重,變成了乙個正數,因此想到利用除法或者將int型別轉換為long計算,可以防止溢位,將上述**轉換為long改為:
public int mysqrt(int x)
else if(m * m > x) else
} return (int)l;
}
改為除法的**:
public int mysqrt(int x)
int l = 1, h = x;
while (l <= h) else if (mid > sqrt) else
}return h;
}
x的平方根
題目三十九 實現int sqrt int x 函式,計算並返回 x 的平方根。您在真實的面試中是否遇到過這個題?yes 樣例sqrt 3 1 sqrt 4 2 sqrt 5 2 sqrt 10 3 挑戰 o log x class solution if i ix return i if i i x...
x的平方根
實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842 由於返回型別是整數,小數部分將被捨去。袖珍計算器演算...
69 x的平方根
一 題目 實現int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4輸出 2示例 2 輸入 8輸出 2說明 8 的平方根是 2.82842.由於返回型別是整數,小數部分將被捨去。二 思路 採用...