美文网首页
65.不用加减乘除做加法(简单)

65.不用加减乘除做加法(简单)

作者: 今天柚稚了么 | 来源:发表于2020-03-03 23:10 被阅读0次

考点:本题考查发散思维能力

题目描述:

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

思路:二进制和位运算

两个二进制的相加结果是用一个异或实现的,两个二进制的进位结果是用一个与实现的。
第一步:不考虑进位对每一位相加相加,二进制每位相加就相当于各位做异或操作
0加0,1加1的结果都是0,0加1,1加0的结果都是1;
0和0,1和1的异或结果都是0,0和1,1和0的异或结果都是1
第二步:计算进位值,相当于各位做与操作,再向左移一位。
0加0,0加1,1加0都不会产生进位,只有1加1时,会向前产生一个进位
第三步重复上述两步, 各位相加 ,计算进位值。进位值为0,跳出循环。

public class Solution {
    public int Add(int num1,int num2) {
        if(num1 == 0){
            return num2;
        }
        else if(num2 == 0){
            return num1;
        }
        else{
            int sum;
            while(num2 != 0){  //先按位异或,在按位与运算,循环即可实现加和,直到num2为0
                sum = num1 ^ num2; //按位异或运算
                num2 = (num1 & num2) << 1; //按位与运算
                num1 =sum;
            }
            return num1;
        }
    }
}

相关文章

  • 65.不用加减乘除做加法(简单)

    考点:本题考查发散思维能力 题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”...

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

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

  • 面试题65. 不用加减乘除做加法

    不用加减乘除做加法 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” ...

  • 不用加减乘除做加法

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

  • 不用加减乘除做加法

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

  • 不用加减乘除做加法

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

  • 不用加减乘除做加法

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

  • 不用加减乘除做加法

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

  • 不用加减乘除做加法

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

  • 不用加减乘除做加法

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

网友评论

      本文标题:65.不用加减乘除做加法(简单)

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