[剑指offer]面试题47:不用加减乘除做加法

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[剑指offer]面试题47:不用加减乘除做加法相关的知识,希望对你有一定的参考价值。

面试题47:不用加减乘除做加法
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷四则运算符号。

代码如下:

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;
}

测试用例:
输入正数、负数和0。
本题考点:
● 考查发散思维能力。当+、-、×、÷运算符都不能使用时,应聘者能不能打开思路想到用位运算做加法,是能否顺利解决这个问题的关键。
● 考查对二进制和位运算的理解。

以上是关于[剑指offer]面试题47:不用加减乘除做加法的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer对答如流系列 - 不用加减乘除做加法

剑指Offer47 不用加减乘除做加法

剑指offer-47:不用加减乘除做加法

剑指offer 面试65题

剑指offer系列——剑指 Offer 65. 不用加减乘除做加法

剑指 Offer 65. 不用加减乘除做加法