zoukankan      html  css  js  c++  java
  • JZ48 不用加减乘除做加法

    不用加减乘除做加法

    写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

    思路:

    这题首先1)计算不进位的加法,5 + 7 = 02;
        2)计算进位。5 +7 = 10;
        3)将1和2相加,10 + 2 = 12;
    第一步就是异或操作,第二步首先使用&操作得到都为1的那些位,然后一定记得左移一位才是得到进位,因为10 & 10 = 10,但是应该要进位,所以<<1。
    还有就是为什么需要一个循环,因为第一步和第二步相加,也可能进位,所以循环的终止条件是进位为0的时候才终止。
    func Add(num1, num2 int) int {
        p1 := 0
        p2 := 0
        
        for num2 != 0 {
            p1 = num1 ^ num2
            p2 = (num1 & num2) << 1           
           
            num1 = p1
            num2 = p2
        }        
        return num1
    } 
  • 相关阅读:
    点聚-weboffice 6.0 (二)
    点聚-weboffice 6.0 (一)
    Hibernate连接池设置
    ajax工作原理(转)
    LigerUI java SSH小例子
    file标签样式修改
    好久不来了,回来园子看看
    resharper 8.2
    无聊的要死
    无聊
  • 原文地址:https://www.cnblogs.com/dingxiaoqiang/p/14642031.html
Copyright © 2011-2022 走看看