日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

剑指Offer Ⅱ 001. 整数除法(力扣剑指Offer专项突击版——整数_1)

發(fā)布時(shí)間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剑指Offer Ⅱ 001. 整数除法(力扣剑指Offer专项突击版——整数_1) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目

給定兩個(gè)整數(shù) a 和 b ,求它們的除法的商 a/b ,要求不得使用乘號(hào) ‘*’、除號(hào) ‘/’ 以及求余符號(hào) ‘%’ 。

注意:
整數(shù)除法的結(jié)果應(yīng)當(dāng)截去(truncate)其小數(shù)部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2
假設(shè)我們的環(huán)境只能存儲(chǔ) 32 位有符號(hào)整數(shù),其數(shù)值范圍是 [?2^31, 2^31?1]。本題中,如果除法結(jié)果溢出,則返回 2^31 ? 1

題解

由于不能用乘除法,因此考慮使用加減法/位運(yùn)算,關(guān)鍵在于越界條件的判斷與復(fù)雜度降低

int divide(int a, int b) {// 考慮用加減/位運(yùn)算計(jì)算if(a == INT_MIN && b == -1)return INT_MAX;int res = 0;// 除數(shù)如果為INT_MIN,結(jié)果必為0/1if(b == INT_MIN) return a == b ? 1 : 0;// 被除數(shù)為INT_MINif(a == INT_MIN){a += abs(b);res++;}// 判斷a,b是否同號(hào)int sign = (a > 0) ^ (b > 0) ? -1 : 1;int u_a = abs(a);int u_b = abs(b);for(int i = 31; i >= 0; --i){if((u_a >> i) >= u_b){u_a = u_a - (u_b << i);if(res > INT_MAX - (1 << i)) //結(jié)果溢出,返回INT_MINreturn INT_MIN;res += 1 << i;}}return sign == 1 ? res : -res;} 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的剑指Offer Ⅱ 001. 整数除法(力扣剑指Offer专项突击版——整数_1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。