不用加减乘除做加法
来源:互联网 发布:阿里云短信接口demo 编辑:程序博客网 时间:2024/06/05 06:39
题目:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
解题思路:
1.不带进位的加:num1 ^ num2
2.进位:(num1 & num2) << 1
解法一(递归)
java实现:
public class Solution { public int Add(int num1,int num2) { if((num1 & num2) == 0) //如果没有进位 return num1 ^ num2; return Add(num1 ^ num2, (num1 & num2) << 1); }}
解法二(循环)
java实现:
public class Solution { public int Add(int num1,int num2) { int sum = 0; int carry = 0; do{ //本身没有进位也得算一次 sum = num1 ^ num2; carry = (num1 & num2) << 1; num1 = sum; num2 = carry; } while(carry != 0); return sum; }}
阅读全文
0 0
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- Linux kernel mail list
- android 简单登陆页面
- HTML基础
- Android Activity生命周期
- 在centos和redhat上安装docker
- 不用加减乘除做加法
- 前端学习手记6/15
- 使用NGINX 来进行反向代理
- mysql in和exists性能比较和使用
- Oracle.补丁.体系结构
- Java 创建线程的方法
- android多进程问题
- Mybatis知识点回顾/总结
- Oracle控制文件的修复及大数据文件的清除