美文网首页
面试题 17.01. 不用加号的加法

面试题 17.01. 不用加号的加法

作者: itbird01 | 来源:发表于2022-01-25 07:07 被阅读0次
    题目.png

    题意:设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。

    解法1:
    在十进制中,3+8=1+10=11(其中1为不进位的数字,10为进位后)
    同理,在二进制中,按位异或得到不进位的数字,按位与得到需要进位的数字。
    所以,很容易得出递归的解法(注意,当a和b相加进位数字为0时,a^b即为a+b的结果,所以a&b==0做递归出口)

    解题遇到的问题

    后续需要总结学习的知识点

    ##解法1
    class Solution {
        public int add(int a, int b) {
            if((a&b)==0){
                return a^b;
            }
            else{
                return add((a&b)<<1,a^b);
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:面试题 17.01. 不用加号的加法

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