首页 > 学院 > 开发设计 > 正文

371. Sum of Two Integers(用位运算实现加法)

2019-11-08 03:21:46
字体:
来源:转载
供稿:网友

题目链接在此

Calculate the sum of two integers a and b, but you are not allowed to use the Operator + and -.

Example:

Given a = 1 and b = 2, return 3.

要求代码里不能出现 + 和 - 符号,只能用位运算咯。

这位大神把加法、减法、循环/递归 的做法的列出来了:

// Iterativeint getSum(int a, int b) {	if (a == 0) return b;	if (b == 0) return a;	while (b != 0) {		int carry = a & b;		a = a ^ b;		b = carry << 1;	}		return a;}// Iterativeint getSubtract(int a, int b) {	while (b != 0) {		int borrow = (~a) & b;		a = a ^ b;		b = borrow << 1;	}		return a;}// Recursiveint getSum(int a, int b) {	return (b == 0) ? a : getSum(a ^ b, (a & b) << 1);}// Recursiveint getSubtract(int a, int b) {	return (b == 0) ? a : getSubtract(a ^ b, (~a & b) << 1);}// Get negative numberint negate(int x) {	return ~x + 1;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表