lintcode鏈結
將兩個整數相除,要求不使用乘法、除法和 mod 運算子。
如果溢位,返回2147483647
。
您在真實的面試中是否遇到過這個題?
yes
樣例給定被除數 =100
,除數 =9
,返回11
。
標籤 二分法
public class solution
//方法一
//二分法
//移位+減法
int helper_2(int dividend, int divisor)//一直到減不夠了,重新從b的一倍開始減起
}//溢位處理
if(res == (integer.max_value+1l) && flag==1)
return integer.max_value;
return (int)(res*flag);
}//方法二
//一直做減法
//超時
int helper_1(int dividend, int divisor)
//溢位處理
if(res == (integer.max_value+1l) && flag==1)
return integer.max_value;
return (int)res*flag;
}}
兩個整數相除 LintCode
將兩個整數相除,要求不使用乘法 除法和 mod 運算子。樣例 給定被除數 100 除數 9,返回 11。思想 利用位操作來擴大除數的值,被除數不斷減去除數,直至被除數小於除數。ifndef c414 h define c414 h include using namespace std class ...
29 兩個整數相除
divide two integers without using multiplication,division and mod operator.if it is overflow,return max int.移位運算 a 1 移位時,移出的位數全部丟棄,移出的空位補入的數與左移還是右移花接木...
lintcode 414 兩個整數相除
將兩個整數相除,要求不使用乘法 除法和 mod 運算子。如果溢位,返回 2147483647 樣例給定被除數 100 除數 9,返回 11。標籤二分法 思路 不用乘除法和模運算求來做除法,很容易想到的乙個方法是一直做減法,然後計數,除此之外,一種更快速的方法是 利用位運算,意思是任何乙個整數可以表示...