面试题1:不用加减乘除,求两个整数的和。

import java.util.Scanner;

public class GetSum {

/**

* 不用加减乘除做加法;

* 十进制中的18和7相加;可以分成这样三步来计算:一.无进位的各个位相加得18+7=15;二.18加7的进位是10

* 三.用一和二的结果相加15+10=25

* 对数字运算除了使用四则运算,那就剩下位运算了,而位运算是针对二进制的运算

* 18在计算机中用:10010 7在计算机中用:111

* 一.无进位的各个位相加得10010+111=10101;注意观察相加的结果值和 这两个数进行异或的值相等

* 二.进位是10010+111=100 求两数相加的进位,相当于两数做按位与运算后再左移一位

* 三.再用10101+100发现还有进位,用10101和100重复第一第二步骤,异或得10001

* 按位与后左移一位得 进位值是1000

* 此时10001+1000=11001 没有进位,相当于两数做异或运算

*

* 所以编程时,只要写一个循环 对两个数反复做 异或和按位与后左移一位操作 直到没有进位后

* 输出两个数的异或值。

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

System.out.print("a= ");

int a = sc.nextInt();

System.out.print("b= ");

int b = sc.nextInt();

System.out.println("a+b="+add(a,b));

}

public static int add(int a,int b){

int sum,carry;

do{

sum = a^b;

carry = (a&b)<<1;

a = sum;

b = carry;

}while(carry!=0);

return sum;

}

}

如何用java实现加减_用Java实现不用加减乘除做加法操作相关推荐

  1. 剑指offer不用加减乘除做加法_剑指Offer-不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路 思路一: 位运算 思路二: 递归 思路三: 调用Integer的sum方法 思路四: 自增自减 代码实现 ...

  2. java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...

  3. java 日期的加减_用java实现日期类的加减

    Java代码 public class test1 { public static void main(String[] args) { Calendar c = Calendar.getInstan ...

  4. java集合的加减_在JAVA中,对List集合的加减操作

    在日常Java开发中,经常会对List集合进行各种各样的操作,这里针对List集合的加减操作做个小的总结:在我看来最常用的有两个,一个是对原List本身有改变,一个是原List本身无改变. 一.对原L ...

  5. java date加月_关于java:在日期中添加月份

    我想根据用户选择的持续时间添加月数. 我已经编写了以下代码,它采用当前日期并根据用户选择的持续时间添加月份,但我希望它采用从前端传递的开始日期并根据持续时间添加月份. String le=ra.get ...

  6. java工程加包_向java工程添加jar包

    当你在向java类中导入某些包的时候(比如:import javax.servet.*)会报错,提示没有这个包.那是因为我们使用的jdk的JRE System Library库中没有包含servet_ ...

  7. [剑指offer]面试题第[65]题[JAVA][不用加减乘除做加法][位运算]

    [问题描述][简单] [解答思路] 1. 位运算 时间复杂度:O(1) 空间复杂度:O(1) public int add(int a, int b) {while(b != 0) { // 当进位为 ...

  8. 【剑指offer】面试题65:不用加减乘除做加法(Java)

    写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*"."/" 四则运算符号. 示例: 输入: a ...

  9. 【LeetCode笔记】剑指 Offer 65. 不用加减乘除做加法(Java、位运算、二刷)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 讲道理,感觉算有点难度的题目了= =,还是需要时不时看看. 思路 & 代码 正负数情况可以不考虑(补码) 核心:加法 = 进位和 + ...

最新文章

  1. java initcause_Java 异常
  2. 【翻译】SQL Server索引进阶:第三级,聚集索引
  3. Containers vs Serverless
  4. Android典型界面设计(8) ——ViewPager+PagerSlidingTabStrip实现双导航
  5. 分享平时工作中那些给力的shell命令(更新版)
  6. c51单片机汇编语言电梯,C51单片机汇编语言指令集.doc
  7. 这个Python资源在GitHub上标星超8000,现在被翻译成了中文 | 资源
  8. Word Count Example of Hadoop V1.0 – Mapper的实现
  9. 直线分割平面的公式_折线(含直线)分割平面(图文)解析
  10. 2021-06-02
  11. 社交网络崛起带来口碑营销的复兴
  12. 存储容量扩展的设计仿真实验
  13. java文件上传后台
  14. 今日头条搜索站长平台(入口)功能简介
  15. WinForm中新开一个线程操作窗体上的控件(跨线程操作控件)GOOD
  16. android高分段进阶攻略(9)——ViewPager补间动画实现京东广告Banner
  17. Apollo学习(一)Apollo初学入门
  18. Centos服务器 查看不到IP地址
  19. 第一章 TCG 规范科普解读
  20. Springboot启动报错[ main] o.s.boot.SpringApplication: Application run failed(佷有可能是版本问题)

热门文章

  1. Revit二次开发示例:HelloRevit
  2. ZZULIOJ 1125: 上三角矩阵的判断
  3. editplus public class自动补齐大括号问题破解
  4. OJ1180: 成绩统计(结构体专题)(C语言)
  5. permutation 1(HDU-6628)
  6. 扩散(信息学奥赛一本通-T1437)
  7. 8 QM配置-质量计划配置-维护检验计划的号码范围
  8. 38 SD配置-销售凭证设置-定义拒绝原因
  9. linux5.5救援模式,RHEL5救援模式简介RescueModeinRHEL5.PDF
  10. java购物车后台_JavaWeb后台购物车类实现代码详解