天天看點

LeetCode 371 兩整數之和(不使用+、-運算符)

#include "stdio.h"

int getSum(int a, int b) {
	int sum;
	unsigned int carry;

	while (1)
	{
		sum = a ^ b;    //1.第一次為沒有進位的值 2.後面相或補進位
		carry = a & b;  //需要進位對應的值
		if (carry == 0) //直到沒有要進的位
		{
			break;
		}
		a = sum;
		b = carry << 1; //每進一位後,前面的位數就不進了
	}
	return sum;
}

int main()
{
	printf("%d", getSum(3, 5));
}



           

繼續閱讀