劍指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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章