博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Divide two integer
阅读量:3622 次
发布时间:2019-05-21

本文共 581 字,大约阅读时间需要 1 分钟。

这道题目不能用上除法,乘法,和取余数。所以需要你每次都减去减数,但是如果每次只减一个,那么就太慢了。所以关键是每次减掉 2kdivisor ,k的值取决于 2kdivisor 是最接近于dividend的数。


class Solution(object):    def divide(self, dividend, divisor):        max_int = 2147483647        divd,divs = abs(dividend),abs(divisor)        res = 0        while divd>=divs:            a,i = divs,0            while a<=divd:                a<<=1                i+=1            res += 1<<(i-1)            divd -= (a>>1)        if res >max_int:res = max_int if not ((dividend>0) ^ (divisor>0)) else max_int+1        return res  if not ((dividend>0) ^ (divisor>0)) else -res

转载地址:http://pmrkn.baihongyu.com/

你可能感兴趣的文章
第九章 质量与变更管理
查看>>
Rabbitmq高级特性及集群
查看>>
RocketMq入门
查看>>
RocketMQ高级原理详解
查看>>
RocketMQ应用
查看>>
kafka搭建与使用
查看>>
docke学习内容之二
查看>>
SpringDataJpa学习一
查看>>
springboot中的日志框架
查看>>
springboot的MVC自动配置
查看>>
Springboot中对mvc进行扩展
查看>>
一文读懂HashMap
查看>>
ConcurrentModifcationException详解
查看>>
史上最全的PHP正则表达式
查看>>
理解Mysql prepare预处理语句
查看>>
预编译语句(Prepared Statements)介绍,以MySQL为例
查看>>
单利模式
查看>>
gdal学习笔记1-读取数据信息
查看>>
python关于print中数据传输的用法
查看>>
sublime text3的快捷键总结
查看>>