LintCode A+B问题
2024-09-02 16:23:33
给出两个整数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);
}
};
最新文章
- 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题
- MSSQLServer 纵向表转横向表 横向表转纵向表 行转列 列转行
- jQuery/javascript实现全选全不选
- php基础07:流程控制
- MongoDB源码分析——mongo与JavaScript交互
- Mvc学习笔记(2)
- Quartz.net使用记录
- hdu 4602 Partition(矩阵快速幂乘法)
- BZOJ 1216: [HNOI2003]操作系统( 优先队列 )
- 基于 Groovy 的自动化构建工具 Gradle 入门(转)
- VC++.Net CAD编程架构
- 在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解
- 01-Git简介和仓库创建
- [Swift]LeetCode962. 最大宽度坡 | Maximum Width Ramp
- 007 使用SpringMVC开发restful API五--异常处理
- 如何在hanlp词典中手动添加未登录词
- 在td中的输入英文为什么不自动换行???
- WebStrom直接启动VUE项目
- MySQL 安装 用户管理 常用命令
- C++之输出100-200内的素数
热门文章
- Django项目:CRM(客户关系管理系统)--75--65PerfectCRM实现CRM课程分数排名
- 关于HTTP协议(转)
- bzoj4788: [CERC2016]Bipartite Blanket
- 矩阵快速幂2 3*n铺方格
- PAT甲级——A1027 Colors in Mars
- String、StringBuffer和StringBuilder源码解析
- Hadoop IO 特性详解(2)【文件校验】
- Ubuntu 链接ln的使用:创建和删除符号链接
- 前端(jQuery)(1)-- JQuery简介及语法
- 全球最牛的100家AI创企:有多少独角兽?