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

2021-09-30 11:10:03 字數 655 閱讀 7086

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

// return x/y.

int div(const int x, const int y) 

根據題目,我們知道x/y的結果是乙個整數,只是乙個整數的話需要考慮的東西就比較少了。

當然如果是小數的話也是可以做的,我們可以借鑑利用兩點確定一元二次函式根的方法,這個大家可自行思考,下面貼上這題的**。

利用相減的方法,這個方法有乙個非常不好的地方個人覺得,比如x=10000000,y=1;這樣的話就要迴圈10000000,效率不好。

**如有錯誤,或者還有更好的方法,還請各位道友能夠批評指正。

#include#include/*

int div( const int x, const int y)

else

}if( result<0)

return result+1;

return result-1;}*/

//用這個方法的話,直接用x,y進行比較計算,看起來會比較麻煩

//下面我們可以通過 x,y的絕對值來計算,這樣就只需要求一次了,看起來很簡潔

int div( const int x, const int y)

int main()

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

程式設計實現兩個正整數的除法,當然不能用除法操作符。常規的想,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 con...

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

基礎知識 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翻倍,這樣就可...