`

A+B问题

阅读更多

 

题目地址

不用加号计算A+B,我们用异或运算和与运算以及位运算来实现同等的操作,A^B的二进制异或运算,相当于没有进位的加号运算;例如 A=10,B=11;A^B = 10,而A+B的值为110,所以相比来说少了一个进位,我们要做的就是 用与运算和移位运算来实现,A&B = 10,A&B>>1 = 100; (A^B)^(A&B>>1) =110,(A^B)&(A&B>>1)=0;

所以我们 进行递归操作,进了几次位就 进行多少次递归,直至B这一项变为0,范围A即可;代码如下:

package lintcode;

import java.util.Scanner;

/**
 * Created by Taoyongpan on 2017/11/15.
 * 求A+B的和,不能运用加号,A,B都是int型
 */
public class SumAB {

    public static int sum(int a,int b){
        if (a==0){
            return b;
        }
        if (b==0){
            return a;
        }
        return sum(a^b,(a&b)<<1);
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){

            int a = sc.nextInt();
            int b = sc.nextInt();

            System.out.println(sum(a,b));
        }
    }
}

 

分享到:
评论

相关推荐

    百度之星2010复赛 A+B问题代码 (参考)

    标题中的“百度之星2010复赛 A+B问题代码(参考)”指的是一个编程竞赛的问题,这通常是指参赛者需要解决的一个基础算法题目。在编程竞赛中,A+B问题是一个非常经典且基础的题目类型,它要求参赛者编写程序来计算两...

    A+B问题这么简单的问题还需要编程么?

    ### A+B问题详解 #### 一、问题背景与概述 “A+B问题”是一个经典的计算机科学入门题目,旨在考察初学者对于基本数据类型处理以及简单算法的理解能力。本篇内容主要围绕一个具体的A+B问题展开讨论,该问题要求计算...

    a+b问题最简单.py

    Python题目a+b,

    a+b.cpp入门题一本通1006

    大部分的在线题库,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。 A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。现在请你解决这一问题。

    c语言作业题目A+B问题

    c语言作业题目A+B问题

    c++a+b问题源代码

    c++a+b问题源代码

    HUSTOJ A+B问题

    HUSTOJ A+B问题(含12种语言的样例)

    hustoj A+B问题16种语言及答案

    hustoj A+B问题16种语言及答案

    入门1、A+B问题.sln

    入门1、A+B问题.sln

    acm程学设计 a+b

    acm程序设计中的较为复杂的a+b问题的最优解答方法,希望采纳。

    3-杭电A+B题目C╱C++参考代码.rar

    在编程竞赛中,杭电(HDU)的在线判题系统提供了许多经典的编程题目,其中包括基础的A+B问题。这类问题通常要求程序能处理两个整数的加法运算,并输出它们的和。尽管看似简单,但这类题目对于初学者来说是理解和掌握...

    pta_1001 A+B Format (20 分).docx

    本文将详细介绍pta_1001 A+B Format的解决方案,该问题涉及到基本的C++编程技术和算法思想。 标题解释 pta_1001 A+B Format (20 分)是指在C++编程中,实现一个简单的加法运算,并将结果以特定的格式输出。该问题...

    A+B problem问题

    输入A和B,求出A+B的值

    A+B+C问题(C语言)

    这是一个非常简单的题目,意在考察你编程的基础能力。千万别想难了哦。输入为一行,包括了用空格分隔的三个整数 AAA、BBB、CCC...输出为一行,为“A+B+CA+B+CA+B+C”的计算结果。 样例输入 22 1 3 样例输出 26

    A+B for Input-Output Practice (IV)

    Input contains multiple ... Each test case contains a integer N, and then N integers follow in the same line. A test case starting with 0 terminates the input and this test case is not to be processed.

    问题E a+b多测试用例1.c

    问题E a+b多测试用例1.c

    L1-025 正整数A+B—题解

    【L1-025 正整数A+B】题解 这道题目是一道基础的编程题目,主要考察的是对输入数据的处理能力和简单的数学运算。问题要求将两个正整数A和B相加,但输入的数据可能包含乱码和空格,增加了处理的复杂性。解题的关键...

    蓝桥杯所有题目.docx

    问题1.A+B 问题描述:输入A、B,输出A+B。 知识点: * 输入输出格式 * 算法设计 * 基本数据类型 问题2.序列求和 问题描述:求 1+2+3+...+n 的值。 知识点: * 序列求和 * 算法设计 * 数学公式 问题3.圆的...

    航电评测题目离线版

    航电评测全部题目离线版。

Global site tag (gtag.js) - Google Analytics