zoukankan      html  css  js  c++  java
  • Divide Two Integers

        题意是计算a/b,其中a、b均为int,结果也要int。但是计算不允许使用乘法、除法、取模运算。

    class Solution 
    {
    public:
        // Divide two unsigned int once, using binary divide method.
        unsigned int unsigned_divide_once(unsigned int &dividend, unsigned int divisor)
        {
            if (dividend < divisor)
            {
                dividend = 0; // Update dividend.
                return 0;
            }
     
            unsigned int result = 1;
     
            while (divisor < dividend)
            {
                divisor <<= 1;
                result <<= 1;
            }
     
            if (divisor != dividend)
            {
                divisor >>= 1;
                result >>= 1;
            }
     
            dividend -= divisor;
     
            return result;
        }
     
        int divide(int dividend, int divisor) 
        {
            if (divisor == 0) throw 1;
     
            bool negative = (dividend > 0 && divisor < 0) || (dividend < 0 && divisor > 0);
            unsigned int udividend = dividend < 0 ? -dividend : dividend;
            unsigned int udivisor = divisor < 0 ? -divisor : divisor;
            unsigned int uresult = 0;
     
            while (udividend != 0)
            {
                uresult += unsigned_divide_once(udividend, udivisor);
            }
     
            return negative ? -(int)uresult : (int)uresult;
        }
    };
  • 相关阅读:
    odoo权限
    odoo开发bug记录
    odoo视图
    odoo13线上发布
    odoo开发环境搭建
    request
    urllib
    b站排行榜-爬虫
    DockerFile
    Docker基本操作
  • 原文地址:https://www.cnblogs.com/codingmylife/p/2676757.html
Copyright © 2011-2022 走看看