摘要:給定兩個整數(shù),被除數(shù)和除數(shù)。將兩數(shù)相除,要求不使用乘法除法和運算符。返回被除數(shù)除以除數(shù)得到的商。示例輸入輸出示例輸入輸出說明被除數(shù)和除數(shù)均為位有符號整數(shù)。假設(shè)我們的環(huán)境只能存儲位有符號整數(shù),其數(shù)值范圍是。
給定兩個整數(shù),被除數(shù) dividend和除數(shù) divisor。將兩數(shù)相除,要求不使用乘法、除法和 mod 運算符。
返回被除數(shù) dividend 除以除數(shù) divisor 得到的商。
示例 1:
輸入: dividend = 10, divisor = 3
輸出: 3
示例 2:
輸入: dividend = 7, divisor = -3
輸出: -2
說明:
被除數(shù)和除數(shù)均為 32 位有符號整數(shù)。
除數(shù)不為 0。
假設(shè)我們的環(huán)境只能存儲 32 位有符號整數(shù),其數(shù)值范圍是 [?2^31, 2^31 ? 1]。本題中,如果除法結(jié)果溢出,則返回 2^31 ? 1。
答案參考:
/** * @param {number} dividend * @param {number} divisor * @return {number} */ var divide = function (dividend, divisor) { let result = 0, sign = 1, mul = 1; if ((dividend > 0 && divisor < 0) || (dividend < 0 && divisor > 0)) { sign = -1; } dividend = Math.abs(dividend); divisor = Math.abs(divisor); divisor2 = divisor; while (dividend >= divisor2) { if (dividend > (divisor2 + divisor2)) { divisor2 += divisor2; mul += mul; } dividend -= divisor2; result += mul; } while (dividend >= divisor) { dividend -= divisor; result += 1; } if (sign == 1 && result > (Math.pow(2, 31) - 1)) { return Math.pow(2, 31) - 1; } else if (sign == -1 && result < -Math.pow(2, 31)) { return -Math.pow(2, 31); } if (sign == 1) { return result; } else { return -result; } };
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101768.html
摘要:原題給定兩個整數(shù),被除數(shù)和除數(shù)。將兩數(shù)相除,要求不使用乘法除法和運算符。返回被除數(shù)除以除數(shù)得到的商。右移位,等價于,除以的次方。當(dāng)除以時,結(jié)果相較于除數(shù)會非常的小。我們使用循環(huán)逐漸減少右移的位數(shù),逐漸逼近除數(shù),當(dāng)時等于,大于等于。 showImg(https://segmentfault.com/img/remote/1460000020181895); 原題 給定兩個整數(shù),被除數(shù)?d...
摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時我在談啥狀態(tài)碼詳解無狀態(tài)協(xié)議和請求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運用場景說說你常用的命令為什么要有包裝類面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計工程在線診斷系統(tǒng)設(shè)計與實現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時我在談啥?...
摘要:兩數(shù)相除不允許使用高級運算實現(xiàn)兩整數(shù)相除,不允許使用乘法除法和取余運算。如果左移一位的除數(shù)過大,除數(shù)還原。注意處理除法運算中正負(fù)號的問題。代碼本題以及其它題目代碼地址地址 兩數(shù)相除——不允許使用高級運算 Divide Two Integers 實現(xiàn)兩整數(shù)相除,不允許使用乘法、除法、和取余運算。 如果結(jié)果溢出(int范圍為-2147483648 ~ 2147483647),返回MAX_...
摘要:兩數(shù)相加給定兩個非空鏈表來表示兩個非負(fù)整數(shù)。位數(shù)按照逆序方式存儲,它們的每個節(jié)點只存儲單個數(shù)字。你可以假設(shè)除了數(shù)字之外,這兩個數(shù)字都不會以零開頭。 LeetCode2.兩數(shù)相加 JavaScript 給定兩個非空鏈表來表示兩個非負(fù)整數(shù)。位數(shù)按照逆序方式存儲,它們的每個節(jié)點只存儲單個數(shù)字。將兩數(shù)相加返回一個新的鏈表。你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)字都不會以零開頭。示例: 輸入:(...
摘要:兩數(shù)之和給定一個整數(shù)數(shù)組和一個目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個數(shù)。你可以假設(shè)每個輸入只對應(yīng)一種答案,且同樣的元素不能被重復(fù)利用。實例給定因為所以返回答案參考執(zhí)行 LeetCode1.兩數(shù)之和JavaScript 給定一個整數(shù)數(shù)組和一個目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個數(shù)。你可以假設(shè)每個輸入只對應(yīng)一種答案,且同樣的元素不能被重復(fù)利用。實例: 給定 nums = [2, 7, 11, 1...
閱讀 3171·2023-04-25 18:22
閱讀 2416·2021-11-17 09:33
閱讀 3343·2021-10-11 10:59
閱讀 3252·2021-09-22 15:50
閱讀 2831·2021-09-10 10:50
閱讀 870·2019-08-30 15:53
閱讀 461·2019-08-29 11:21
閱讀 2933·2019-08-26 13:58