美文网首页
不用加减乘除做加法

不用加减乘除做加法

作者: 囧略囧 | 来源:发表于2018-10-26 11:18 被阅读0次

题目描述

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

分析

题目要求不能使用四则运算,则只能使用位运算。
平时的加法都是逐位运算,求和,然后得到进位,再求下一位。我们也可以换一种思路,
其实加法运算就是数字相加,然后加上进位,若加上进位后产生新的进位,则继续相加。
例如14+8,分解为相加得到12,加上进位1,得到22。
又例如94+8,分解为相加得到92,加上进位1,得到02,再加上新得到的进位1,得到102。

二进制加法也满足上述方法。
如3+2,二进制分别为011和010,相加得到001,加上进位得到101,101就是5。

二进制相加的过程中,1+1=0,0+1=1,1+0=1,0+0=0,正好是异或操作;
进位时只有1+1会产生进位,0+1、1+0和0+0均不会产生进位,正好是与操作,将得到的结果左移一位变得到了进位。

public class Solution {
    public int Add(int num1,int num2) {
        int carry = 0;
        int sum = 0;
        do{
            sum = num1 ^ num2;
            carry = (num1 & num2) << 1;
            num1 = sum;
            num2 = carry;
        }while(carry != 0);
        return sum;
    }
}

相关文章

  • [python2] 65 不用加减乘除做加法、减法

    1. 不用加减乘除做加法 2. 不用加减乘除做减法 1). 思路1 a - b = a + (-b) 因此可以使用...

  • 不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 分析 题目要求不能使用四...

  • 不用加减乘除做加法

    剑指 Offer 的一道题:求两个整数之和,不得使用 加 减 乘 除 四种运算符。其实仔细想一想,语言中除了这几种...

  • 不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路 递归采用 按位与 ...

  • 不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 示例 输入4 1输出5 ...

  • 不用加减乘除做加法

    题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 方法一: 方法二:

  • 不用加减乘除做加法

    题目要求:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 仔细一看这题颇有意思,求...

  • 不用加减乘除做加法

    题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路:位运算,异或操作用...

  • 不用加减乘除做加法

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

  • 不用加减乘除做加法

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

网友评论

      本文标题:不用加减乘除做加法

      本文链接:https://www.haomeiwen.com/subject/nrsktqtx.html