栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

二进制求和plus java 算法与数据结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二进制求和plus java 算法与数据结构

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

输入: a = 1, b = 1
输出: 2

这道题对比 二进制求和 java 算法与数据结构___Wang____的博客-CSDN博客 

有以下不同的地方:1.这里直接给出了 int 类型,而不是字符串类型;2.不允许使用加减乘除,应该使用位运算来A这道题;

位运算求和的基本算法:

int sum = a^b;
int carry = (a&b)<<1;

完整代码如下:

class Solution {
    public int add(int a, int b) {
        int sum = a^b;
        int carry = (a&b)<<1;
        while(carry!=0){
            a = sum;
            b = carry;
            sum = a^b;
            carry = (a&b)<<1;
        }
        return sum;
    }
}
//写法二
// class Solution {
//     public int add(int a, int b) {
//         while(b != 0) { // 当进位为 0 时跳出
//             int c = (a & b) << 1;  // c = 进位
//             a ^= b; // a = 非进位和
//             b = c; // b = 进位
//         }
//         return a;
//     }
// }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号