博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode "Divide Two Integers"
阅读量:4489 次
发布时间:2019-06-08

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

A very interesting numeric problem. It involves a lot tricks.

Linear search (by +\-) is not feasible - too slow. So binary search is a good idea. Also please take special care of integer overflow!

class Solution {public:    unsigned long _divide(unsigned long tgt, unsigned long adiv, unsigned long start)    {        if ((tgt - start) <= adiv) return (tgt - start) / adiv;                unsigned n = 0;        while (((adiv << n) + start) < tgt) n++;        return (1 << (n - 1)) + _divide(tgt, adiv, (adiv << (n - 1)) + start);    }    int divide(int dividend, int divisor) {        if (dividend == 0) return 0;        unsigned long adend = abs(dividend);        unsigned long adiv = abs(divisor);        int iNeg = 0;        if ((dividend < 0 && divisor > 0) ||            (dividend > 0 && divisor < 0))        {            iNeg = -1;        }        else        {            iNeg = 1;        }                if (adiv == 1)    return adend * iNeg;        unsigned long ret = _divide(adend, adiv, 0);                return ret * iNeg;    }};

转载于:https://www.cnblogs.com/tonix/p/3875211.html

你可能感兴趣的文章
SQL关键字-exists
查看>>
每天一个linux命令(42):kill命令
查看>>
java获取当前路径的几种方法
查看>>
常用的js函数
查看>>
Unity 碰撞检测 OnTriggerEnter 入门
查看>>
利用DFS求联通块个数
查看>>
总结:
查看>>
spring boot 整合redis --sea 方式1
查看>>
Android Http请求方法汇总
查看>>
缓存技术PK:选择Memcached还是Redis?
查看>>
Laravel-lumen 配置JWT
查看>>
MySQL常用存储引擎:MyISAM与InnoDB之华山论剑
查看>>
MVC5+EF6 --自定义控制Action访问权限
查看>>
[CF786B] Legacy
查看>>
Spring 注解@Component,@Service,@Controller,@Repository
查看>>
设置RDLC中table控件的表头在每页显示
查看>>
linux中tomcat内存溢出解决办法 分类: 测试 ...
查看>>
jQuery $.each用法
查看>>
[Luogu 3902]Increasing
查看>>
clear语句处理不同类型的数据结果
查看>>