美文网首页
【2错-2】不用加号求两数之和

【2错-2】不用加号求两数之和

作者: 7ccc099f4608 | 来源:发表于2019-01-27 15:16 被阅读0次

https://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215?tpId=13&tqId=11201&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
| 日期 | 是否一次通过 | comment |
|----|----|----|
|2019-01-26 13:20|N|对位运算理解不够:异或表示非进位的加法,与表示进位|
|2019-01-26 13:20|N|递归方法没写好|

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

1. 递归

public class Solution {
    public int Add(int num1,int num2) {   // (结果,进位)
        if((num1 & num2) == 0) {
            return num1 ^ num2;
        }
         
        return Add(num1 ^ num2, (num1 & num2) << 1);  // 注意下符号优先级,移位的优先级高于与
    }
}

2.非递归

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

相关文章

  • 【2错-2】不用加号求两数之和

    https://www.nowcoder.com/practice/59ac416b4b944300b617d4f...

  • leetcode top100

    1.求两数之和(数组无序) 2.求电话号码的字母组合 3.三数之和 4.两数之和(链表)

  • LeetCode 第18题:四数之和

    1、前言 2、思路 采用三数之和的思路,原本三数之和可以分解为:数组中的一个数 + 此数右边的数求两数之和,那么四...

  • 算法:不使用加号,求两数之和

    算法 求两个数之和,但不能使用加号运算符 方法一: 方法二: 方法三: 方法四:

  • 2.链表求两数之和

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只...

  • LeetCode两数之和2

    题目:给你两个 非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加...

  • 2.两数之和

    使用两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一...

  • 鸡兔同笼问题之延伸

    2.鸡兔互换问题(已知总脚数及鸡兔互换后总脚数,求鸡兔各多少的问题), 〔(两次总脚数之和)÷(每只鸡兔脚数和)+...

  • 算法简记- 两数和

    1、// . 两数之和 2、// 三数和 3、// 多数和的模板

  • LeetCode

    1.两数之和 2.两数相加ps:不能直接求总和,再一位一位赋值,因为总和会超过long long的位数限制 3.无...

网友评论

      本文标题:【2错-2】不用加号求两数之和

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