剑指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;
发布了74 篇原创文章 · 获赞 75 · 访问量 4040

猜你喜欢

转载自blog.csdn.net/qq_35340189/article/details/104515444