given two integersdividend
anddivisor
, divide two integers without using multiplication, division and mod operator.
return the quotient after dividingdividend
bydivisor
.
the integer division should truncate toward zero.
example 1:
input: dividend = 10, divisor = 3
output: 3
example 2:
input: dividend = 7, divisor = -3
output: -2
只要理解了計算機中除法的原理,模擬思路就可以處理的比較好。
麻煩之處在於邊界的處理上。
方法一: 模擬計算機中的除法操作。
ac**如下: 16ms
class solution
return len;
}public int getbit(long num,int index)
}
方法二: 在網上找到一種解法,利用位運算,意思是任何乙個整數可以表示成以2的冪為底的一組基的線性組合,即num=a_0*2^0+a_1*2^1+a_2*2^2+...+a_n*2^n。基於以上這個公式以及左移一位相當於乘以2,我們先讓除數左移直到大於被除數之前得到乙個最大的基n的值,說明被除數中至少包含2^n個除數,然後減去這個基數,再依次找到n-1,...,1的值。將所有的基數相加即可得到結果。
具體**如下: 24ms
class solution
ans=ans+count;
m=m-temp;
}return flag?ans:-ans;
}}
求兩整數相除 29 兩數相除
給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數 dividend 除以除數 divisor 得到的商。示例1 輸入 dividend 10,divisor 3 輸出 3 示例2 輸入 dividend 7,divisor...
LeetCode 兩數相除
題目 給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出...
兩數相除 kotlin
給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3 輸出 3 示例 2 輸入 dividend 7,divisor 3 輸出...