不用加号计算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问题代码(参考)”指的是一个编程竞赛的问题,这通常是指参赛者需要解决的一个基础算法题目。在编程竞赛中,A+B问题是一个非常经典且基础的题目类型,它要求参赛者编写程序来计算两...
### A+B问题详解 #### 一、问题背景与概述 “A+B问题”是一个经典的计算机科学入门题目,旨在考察初学者对于基本数据类型处理以及简单算法的理解能力。本篇内容主要围绕一个具体的A+B问题展开讨论,该问题要求计算...
Python题目a+b,
大部分的在线题库,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。 A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。现在请你解决这一问题。
c语言作业题目A+B问题
c++a+b问题源代码
HUSTOJ A+B问题(含12种语言的样例)
hustoj A+B问题16种语言及答案
入门1、A+B问题.sln
acm程序设计中的较为复杂的a+b问题的最优解答方法,希望采纳。
在编程竞赛中,杭电(HDU)的在线判题系统提供了许多经典的编程题目,其中包括基础的A+B问题。这类问题通常要求程序能处理两个整数的加法运算,并输出它们的和。尽管看似简单,但这类题目对于初学者来说是理解和掌握...
本文将详细介绍pta_1001 A+B Format的解决方案,该问题涉及到基本的C++编程技术和算法思想。 标题解释 pta_1001 A+B Format (20 分)是指在C++编程中,实现一个简单的加法运算,并将结果以特定的格式输出。该问题...
输入A和B,求出A+B的值
这是一个非常简单的题目,意在考察你编程的基础能力。千万别想难了哦。输入为一行,包括了用空格分隔的三个整数 AAA、BBB、CCC...输出为一行,为“A+B+CA+B+CA+B+C”的计算结果。 样例输入 22 1 3 样例输出 26
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
【L1-025 正整数A+B】题解 这道题目是一道基础的编程题目,主要考察的是对输入数据的处理能力和简单的数学运算。问题要求将两个正整数A和B相加,但输入的数据可能包含乱码和空格,增加了处理的复杂性。解题的关键...
问题1.A+B 问题描述:输入A、B,输出A+B。 知识点: * 输入输出格式 * 算法设计 * 基本数据类型 问题2.序列求和 问题描述:求 1+2+3+...+n 的值。 知识点: * 序列求和 * 算法设计 * 数学公式 问题3.圆的...
航电评测全部题目离线版。