程式設計實現兩個正整數的除法

2021-06-27 01:31:08 字數 526 閱讀 4777

程式設計實現兩個正整數的除法,當然不能用除法操作符。

常規的想,100/7,可以試著7*1, 7*2, 7*3, ... ,7*14做,但這樣子太慢了。於是有人說以2的指數次遞增,也就是7*1,7*2,7*4,7*8,好了,因為7*16>100,所以這個時候就100-7*8=44接著下一次迴圈。

int div(const int x, const int y) 

result += multi;

left_num -= y * multi;

}return result;

}

以下兩個函式有助於理解上面函式。

int div1(int x, int y)//若x >>> y(遠大於)時,效率差

return ans;

}int div2(int x, int y)//利用二進位制的性質,減小加減次數,但是乘法次數增加

return ans;

}

參考:

程式設計實現兩個正整數的除法

程式設計實現兩個正整數的除法,當然不能用除法操作符。return x y.int div const int x,const int y 根據題目,我們知道x y的結果是乙個整數,只是乙個整數的話需要考慮的東西就比較少了。當然如果是小數的話也是可以做的,我們可以借鑑利用兩點確定一元二次函式根的方法,...

不用除法操作符如何實現兩個正整數的除法?

基礎知識 1 常用的等式 n n 1 n 1 2 獲取整數n的二進位制中最後乙個1 n n 或者n n 1 3 去掉整數n的二進位制中的最後乙個1 n n 1 方法一 根據除法運算的原理進行減法操作,對除法迴圈減被除數,減一次結果加一,直到剛好減為0或餘數小於被除數為止。方法二 遞迴法求解。如果每次...

(筆試題)不用除法操作符,實現兩個正整數的除法

如題所示 假設問題是a除以b 題目要求是正整數,所以考慮的條件不是很多,如果要求是整數的話,即要考慮正負情況的判斷。1 最簡單的就是依次用被除數a減去除數b,並統計減去的次數,即為相除結果 這種方法效率不高,尤其是在被除數a很大,除數b很小的情況下,效率非常低 2 考慮每次相減時,將b翻倍,這樣就可...