题目来源:http://www.lintcode.com/zh-cn/problem/a-b-problem/

aaarticlea/png;base64,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" alt="" />

直接return a + b;也可以通过测试,但这样就没意思了。

 class Solution {
public:
/*
* @param a: The first integer
* @param b: The second integer
* @return: The sum of a and b
*/
int aplusb(int a, int b) {
// write your code here, try to do it without arithmetic operators.
// 利用异或运算,异或运算有一个别名叫做:不进位加法
// a ^ b就是a和b相加之后,该进位的地方不进位的结果
// a和b里都是1的地方需要进位
// a & b就是a和b里都是1的那些位置,a & b << 1 就是进位之后的结果。
// 所以:a + b = (a ^ b) + (a & b << 1)
// 令a' = a ^ b, b' = (a & b) << 1
// 可以知道,这个过程是在模拟加法的运算过程,进位不可能一直持续,所以b最终会变为0。
// 因此重复做上述操作就可以求得a + b的值
while (b != ) {
int _a = a ^ b;
int _b = (a & b) << ;
a = _a;
b = _b;
}
return a;
}
};

随机推荐

  1. iOS进行单元测试OCUnit+xctool

    单元测试 什么是单元测试 wiki解释 简单说来就是为你的方法多专门写一个测试函数.以保证你的方法在不停的修改开发中.保持正确.如果出错,第一时间让你知道,这样从最小单位开始监控来保证软件的质量. 我 ...

  2. iOS应用崩溃日志揭秘2

    这篇文章还可以在这里找到 英语 场景 4: 吃棒棒糖时闪退! 用户邮件说, “当rage master吃棒棒糖时应用就闪退…” 另一用户说, “我让rage master 吃棒棒糖,没几次应用就闪退了 ...

  3. NV 3D投影方案 【转】

    http://tu.pcpop.com/all-677013.htm 1/8 NVIDIA 3D方案涉及图形处理器(GPU).信号发射器.快门式3D眼镜.3D播放软件以及经过NVIDIA认证的显示器. ...

  4. opengl interface

    glTranslate()是移动坐标系,比如glTranslate(-1.5,0,0),之后你画的图就是在屏幕左边1.5个单位~glRotation()是做旋转的,第一个参量是angle,后面3个分别 ...

  5. RPi Cam v2 之一:基础及牛刀小试

    前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正. 本文使用markdown写成,为获得更好的阅读体验,可以访问我的博客. 1.unboxing & comparison 包 ...

  6. 转:几款主流pcb软件比较

      原理图设计软件:会ORCAD就可以了,支持的Netlist超多,基本是业界标准. PCB Layout 软件 1.Protel,现在推AltiumDesigner.国内低端设计的主流,国外基本没人 ...

  7. redmine 自己定义字段mysql表结构

    redmine能够创建自己定义字段,我经经常使用它来满足不同的管理需求.如今来解读一下.看看这些自己定义字段是怎样存在mysql表中的. 表issues 用来存放issue的标准字段. mysql&g ...

  8. Django之forms表单类

    Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) 1.创建Form类 from ...

  9. .NET C# 【小技巧】控制台程序,运行是否弹出窗口选择!

    选中控制台程序项目,右键→属性→应用程序栏→输出类型: 1.Windows 应用程序(不弹出提示框)! 2.控制台应用程序(弹出提示框)! 3.类库(类库生成dll,是不能直接运行的,类库供应用程序调 ...

  10. 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。

    // 第一种方法 // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include < ...