剑指Offer——面试题65:不用加减乘除做加法

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

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

#include<iostream>
#include<algorithm>
using namespace std;
int Add(int num1, int num2){
	int sum, carry;
	
	do{
		sum=num1^num2;
		carry=(num1&num2)<<1;
		
		num1=sum;
		num2=carry;
	}while(num2!=0);
	return num1;
}
int main(){
	printf("%d", Add(10, 5));
	return 0;
}

相关问题:不使用新的变量,交换两个变量的值。比如有两个变量 a、b,我们希望交换它们的值。有两种不同的方法:

基于加减法 基于异或运算
a=a+b; a=a^b;
b=a-b; b=a^b;
a=a+b; a=a^b;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章