top面試29 兩數相除

2021-10-08 10:15:12 字數 543 閱讀 3074

題目描述:

思路:每次將除數翻倍後,與被除數比較大小,得到其最小翻倍數,然後遞迴,計算被除數減去翻倍後的除數,與除數繼續求解。

class solution 

long a=dividend;

long b=divisor;

//符號位

int sign=1;

if((a<0&&b>0)||(a>0&&b<0))

a=abs(a);

b=abs(b);

//遞迴求解函式

long res=div(a,b);

if(sign>0) return res>int_max?int_max:res;

return -res;

}long div(long a,long b)

//遞迴

return count+div(a-tb,b);}};

29 兩數相除

這是數學題題啊,老本行。方法一 可以將除法轉移到對數域 b a eln b a e ln b ln a frac ab eln ab e lnb lna c code class solution 方法二 任何乙個整數可以表示成以2的冪為底的一組基的線性組合.分析 可以對被除數進行分解。以 10 和...

29 兩數相除

參考文獻 給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。example 輸入 dividend 10,divisor 3 輸出 3 二進位制遞迴 class solution l...

29 兩數相除

29.兩數相除 難度中等321收藏分享切換為英文關注反饋 給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。整數除法的結果應當截去 truncate 其小數部分,例如 truncat...