给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。

说明

a和b都是 32位 整数么?

  • 是的

我可以使用位运算符么?

  • 当然可以
样例

如果 a=1 并且 b=2,返回3

1.(忽略进位):0+0=0,0+1=1,1+0=1,1+1=0,异或运算。
2.1+1会向前产生进位1,相对于这一数位的进位值为10,而10=(1&1)<<1。
3.将第1步和第2步得到的结果相加,其实又是在重复这2步,直到不再产生进位为止。

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.
if(a==0)
return b;
if(b==0)
return a;
int _a=a^b;
int _b=(a&b)<<1;
return aplusb(_a,_b);
}
};

  

最新文章

  1. 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题
  2. MSSQLServer 纵向表转横向表 横向表转纵向表 行转列 列转行
  3. jQuery/javascript实现全选全不选
  4. php基础07:流程控制
  5. MongoDB源码分析——mongo与JavaScript交互
  6. Mvc学习笔记(2)
  7. Quartz.net使用记录
  8. hdu 4602 Partition(矩阵快速幂乘法)
  9. BZOJ 1216: [HNOI2003]操作系统( 优先队列 )
  10. 基于 Groovy 的自动化构建工具 Gradle 入门(转)
  11. VC++.Net CAD编程架构
  12. 在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解
  13. 01-Git简介和仓库创建
  14. [Swift]LeetCode962. 最大宽度坡 | Maximum Width Ramp
  15. 007 使用SpringMVC开发restful API五--异常处理
  16. 如何在hanlp词典中手动添加未登录词
  17. 在td中的输入英文为什么不自动换行???
  18. WebStrom直接启动VUE项目
  19. MySQL 安装 用户管理 常用命令
  20. C++之输出100-200内的素数

热门文章

  1. Django项目:CRM(客户关系管理系统)--75--65PerfectCRM实现CRM课程分数排名
  2. 关于HTTP协议(转)
  3. bzoj4788: [CERC2016]Bipartite Blanket
  4. 矩阵快速幂2 3*n铺方格
  5. PAT甲级——A1027 Colors in Mars
  6. String、StringBuffer和StringBuilder源码解析
  7. Hadoop IO 特性详解(2)【文件校验】
  8. Ubuntu 链接ln的使用:创建和删除符号链接
  9. 前端(jQuery)(1)-- JQuery简介及语法
  10. 全球最牛的100家AI创企:有多少独角兽?