LintCode M 兩個整數相除

2021-08-07 15:04:30 字數 746 閱讀 7700

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。標籤二分法 思路 不用乘除法和模運算求來做除法,很容易想到的乙個方法是一直做減法,然後計數,除此之外,一種更快速的方法是 利用位運算,意思是任何乙個整數可以表示...