热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LeetCodeMedium:29.DivideTwoIntegers

一、题目Giventwointegersdividendanddivisor,dividetwointegerswithoutusingmultiplication,div

一、题目

Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator.

Return the quotient after dividing dividend by divisor.

The integer division should truncate toward zero.

Example 1:

Input: dividend = 10, divisor = 3
Output: 3

Example 2:

Input: dividend = 7, divisor = -3
Output: -2

Note:

  • Both dividend and divisor will be 32-bit signed integers.
  • The divisor will never be 0.
  • Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 231 − 1 when the division result overflows.

题目大意:不用乘除、取模等运算符,做除法运算

二、思路

这道题可以使用位移运算,借助减法每次减去除数的倍数,每次对商的更新取一个位移操作。

三、代码

#coding:utf-8
def divide(dividend, divisor):
    """
    :type dividend: int
    :type divisor: int
    :rtype: int
    """
    MAX_INT = 2147483647
    sign = 1 if (dividend > 0 and divisor > 0) or (dividend <0 and divisor <0) else -1
    quotient = 0
    dividend = abs(dividend)
    divisor = abs(divisor)
    while dividend >= divisor:
        k = 0
        tmp = divisor
        while dividend >= tmp:
            dividend -= tmp
            quotient += 1 < MAX_INT:
        quotient = MAX_INT
    print(quotient)
    return quotient

if __name__ == '__main__':
    divide(21,5)

  代码参考:https://blog.csdn.net/qian2729/article/details/50528758


推荐阅读
author-avatar
00我就是我00乐乐
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有