剑指offer(48)不用加减乘除做加法

博客围绕剑指offer相关内容,涉及加减乘除运算,但具体内容未给出。推测可能是对算法题中此类运算的探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


/**
 * 题目:不用加减乘除做加法.写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
 * 思考:剑指offer。 1)直接使用Integer类的sum()方法。
 *  2)用异或运算。第一步计算异或和,第二步按位与后左移一位操作  直到没有进位后输出结果,否则一直重复第一第二步
 *  eg:14(1110)+7(0111)
 *  第一次:1001,1100;第二次:0101,10000,第三次10101,0,输出结果10101
 *  
 * @author hexiaoli
 */

public class Main {
	public static int Add1(int num1, int num2) {
        return Integer.sum(num1, num2);
    }
	public static int Add2(int num1, int num2) {
        while (num2!=0) {
            int temp = num1^num2;
            System.out.println("temp"+temp);
            num2 = (num1&num2)<<1;
            System.out.println("num2"+num2);
            num1 = temp;
        }
        return num1;
    }
	public static void main(String[] args) {
//		System.out.println(Add1(10, 5));
		System.out.println(Add2(14, 7));
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值