剑指offer-第六章面试中的各项能力(不用加减乘除做加法)
//不用加减乘除四则运算,来做加法
//题目:两个数做加法。
//思路:用二进制的位运算的思路。第一步:首先两数相加考虑进位。可以用异或。
//第二步:两个数相加只考虑进位,并将最后的结果左移.第三步:将第一二步的结果相加。
public class AddN {
public int add(int a,int b){
//递归实现
int sum1=a^b;
int sum2=(a&b)<<;
if(sum2!=){
return add(sum1,sum2);
}
/*循环实现
* int sum1,sum2;
do{
sum1=a^b;
sum2=(a&b)<<1;
a=sum1;
b=sum2;
}while(b!=0);*/
return sum1;
}
public static void main(String[] args){
AddN add=new AddN();
int sum=add.add(-, );
System.out.println(sum);
}
}
剑指offer-第六章面试中的各项能力(不用加减乘除做加法)的更多相关文章
- 剑指offer-第六章面试中的各项能力(二叉树的深度)
题目:1:输入一个二叉树,求二叉树的深度.从根节点开始最长的路径. 思路:我们可以考虑用递归,求最长的路径实际上就是求根节点的左右子树中较长的一个然后再加上1. 题目2:输入一颗二叉树的根节点,判断该 ...
- 剑指offer-第六章面试中的各项能力(圆圈中剩下的最后数字)
import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util ...
- 剑指offer-第六章面试中的各项能力(扑克牌中的顺子)
//扑克牌的顺子 //题目:在一个扑克牌中随机的抽5张牌,看是不是顺子.大小王为0,A为1,J为11,Q为12,K为13.其他数字为自己本身. //思路:大小王可以代表任意一个数字,因此我们在看是不是 ...
- 剑指offer-第六章面试中的各项能力(n个骰子的点数)
题目:把n个骰子扔到地上,骰子之和为S,输入n,打印s所有可能的值出现的概率. 思路:由于骰子的点数为1~6,因此n个骰子之和的大小为n~6n之间.故可以定义一个数组来存放这6n-n+1个数出现的次数 ...
- 剑指offer-第六章面试中的各项能力(和为S的两个数字VS和为S的连续正序列)
题目1:输入一个排序数组和一个值S,输出数组中两个数的和为S的任意一对数. 思路:分别用两个指针指向数组的头start和尾end.如果两个数字之和等于S输出.如果打于,则end--,再次相加.因此循环 ...
- 剑指offer-第六章面试中的各项能力(数组中只出现一次的数字)
题目:输入一个数组,该数组中有两个只出现一次的数字,其他的数字都出现两次,输出出只出现一次的数字. 思路:首先,我们可以将这个数组分成两份,一份里面放一个只出现一次的数字.那么我们该怎么分呢?将整个数 ...
- 剑指offer-第六章面试中的各项能力(数字在排序数组中出现的次数)
题目:统计一个数字在排序数组中出现的次数. 思路:采用二分查找,找到该数字在数组中第一次出现的位置,然后再找到组后一个出现的位置.两者做减法运算再加1.时间复杂度为O(logn) Java代码: // ...
- 剑指offer-第六章面试中的各项能力之总结
- 剑指offer-第六章面试中的各项能力(翻转单词的顺序VS左旋转字符串)
//题目1:翻转单词顺序例如“Hello world!”翻转后为world! Hello. //思路:首先翻转整个字符串,然后再分别翻转每个单词. //题目2:左旋转字符串,是将字符串的前面几个(n) ...
随机推荐
- Django-JS实现的ajax
JS实现的ajax ajax的优缺点 AJAX使用Javascript技术向服务器发送异步请求 AJAX无须刷新整个页面 因为服务器响应内容不再是整个页面,而是页面中的局部,所以AJAX性能高 小练习 ...
- XAMPP安装指南
首先下载一个安装包 按照默认选项,依次安装: 去掉不必要的选项: 选择安装路径: 显示下图说明已经成功安装完成了. 打开XAMPP,启动Apache服务: 如果显示Apache服务无法启动,有如下错误 ...
- shell-一些有趣的使用
1. 对字符串进行MD5加密 echo test |md5sum|awk '{print $1}' 字符串数量很多时可以这样做: echo test |md5sum|awk '{print $1}' ...
- curator的版本兼容问题(需注意)
Curator 存在版本兼容问题. Curator 2.x.x-兼容两个zk 3.4.x 和zk 3.5.x, Curator 3.x.x-兼容兼容zk 3.5. Versions The are c ...
- Mysql 语句单表查询
一基本查询 -- 创建商品表 CREATE TABLE products( pid INT PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20), price D ...
- 聊聊这两天在linux安装PHP7遇到的坑,真的是坑死人不偿命啊
前情摘要: 这两天要在虚拟机上部署项目,用于测试在linux上项目效果怎样,然后这两天就一直在部署apache+mysql+php 其实部署还是很简单的具体的apache和mysql部署方法请看其他两 ...
- MySql 查询数据库中所有表名以及对比分布式库中字段和表的不同
查询数据库中所有表名select table_name from information_schema.tables where table_schema='数据库名' and table_type= ...
- 基于XML配置的AOP实现日志打印
Spring中可以使用注解或XML文件配置的方式实现AOP.1.导入jar包 com.springsource.net.sf.cglib -2.2.0.jar com.springsource.org ...
- Java对象序列化与反序列化
对象序列化的目标是将对象保存在磁盘中或者在网络中进行传输.实现的机制是允许将对象转为与平台无关的二进制流. java中对象的序列化机制是将允许对象转为字节序列.这些字节序列可以使Java对象脱离程序存 ...
- JQuery小知识点代码
1.链式操作 $(function(){ /*var oDiv = $('#div1'); oDiv.html('hello'); oDiv.css('background','red'); oDiv ...