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