博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LintCode | 1. A + B 问题
阅读量:3574 次
发布时间:2019-05-20

本文共 508 字,大约阅读时间需要 1 分钟。

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


class Solution {    public int aplusb(int a, int b) {        if(b == 0) return a;        while(b != 0) {            //对于是否产生加法进位,仅在1+1时需要,所以使用与运算            int carry = a & b;             //对于加法位运算,1+1->0 1+0->1 0+0->0,所以使用异或            a = a ^ b;            //进位是对前一位操作,故右移            b = carry << 1;        }        return a;    }}

使用递归实现如下

class Solution {    public int aplusb(int a, int b) {        if(b == 0) return a;        return aplusb2(a ^ b, (a & b) << 1);    }}

转载地址:http://yijgj.baihongyu.com/

你可能感兴趣的文章
深入浅出MyBatis:MyBatis解析和运行原理
查看>>
Mybatis与Ibatis
查看>>
字节码文件(Class文件)
查看>>
java中的IO流(一)----概述
查看>>
StringBuilder
查看>>
集合,Collection
查看>>
泛型详解
查看>>
泛型实现斗地主
查看>>
List集合
查看>>
ArrayList集合,LinkedList集合,Vector集合
查看>>
HashSet集合
查看>>
并发与并行,线程与进程
查看>>
方法引用,通过对象名引用成员变量
查看>>
常用工具类 Math:数学计算 Random:生成伪随机数 SecureRandom:生成安全的随机数 2020-2-13
查看>>
Java的异常Exception 2020-2-13
查看>>
Java标准库定义的常用异常,自定义异常 2020-2-15
查看>>
Java问题百度/Google记录 2020-2-16
查看>>
【PADS9.5】9,对比ECO核心板,Router移动元件后布线消失,Router找不到自动布线策略文件丢失或损坏
查看>>
【STM32+w5500汇总】23,HTTP_Client 连接到ONENET上传了一段数据之后会断开,数据上传格式的设置
查看>>
【STM32+W5500+MQTT】24,所有功能都可以通过API函数的调用来实现;HTTP接入ONENET,API开发手册和打包函数,串口软件HTTP连接服务器上传数据,2018年12月28日
查看>>