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

    题目

    Divide two integers without using multiplication, division and mod operator.

    题解

    这道题我自己没想出来。。。乘除取模都不让用。。那只有加减了。。。我参考的http://blog.csdn.net/perfect8886/article/details/23040143

    代码如下:

     1      public int divide(int dividend, int divisor) {  
     2         if (dividend == 0 || divisor == 0) {  
     3             return 0;  
     4         }  
     5         boolean isNeg = (dividend > 0 && divisor < 0)  
     6                 || (dividend < 0 && divisor > 0);  
     7         long a = Math.abs((long) dividend);  
     8         long b = Math.abs((long) divisor);  
     9         if (b > a) {  
    10             return 0;  
    11         }  
    12   
    13         long sum = 0;  
    14         long pow = 0;  
    15         int result = 0;  
    16         while (a >= b) {  
    17             pow = 1;  
    18             sum = b;  
    19             while (sum + sum <= a) {  
    20                 sum += sum;  
    21                 pow += pow;  
    22             }  
    23             a -= sum;  
    24             result += pow;  
    25         }  
    26         return isNeg ? -result : result;  
    27     } 

    Reference:

     http://blog.csdn.net/perfect8886/article/details/23040143

  • 相关阅读:
    npm publish 失败可能的原因记录
    nodejs版实现properties后缀文件解析
    CSS 毛玻璃效果
    echarts markLine 辅助线非直线设置
    sql 数据类型 建表时如何选择数据类型
    用row_nuber 分页的存储过程
    错误描述:未能找到路径“C:/”的一部分
    设置VS2010默认以管理员权限启动
    通过做nopcommerce电商项目对EF的理解(一)
    获取多表联合查询的存储过程。
  • 原文地址:https://www.cnblogs.com/springfor/p/3871008.html
Copyright © 2011-2022 走看看