Java关于短路与&&的巧妙运用
2017-08-13 22:25
246 查看
来自于《剑指Offer》
这里有一个技巧就在于我们不能使用循环,但是我们可以使用制作循环或者递归,如何制造循环或者递归就是关键了,这里就使用到了短路与
如所示代码:
如题:
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解析:
题上所说不能用平时常用的运算符,设置连乘除法都不能使用,那么这里我们能想到的就只有进位符和加减运算。这里有一个技巧就在于我们不能使用循环,但是我们可以使用制作循环或者递归,如何制造循环或者递归就是关键了,这里就使用到了短路与
&&,前面不成功,后面也不执行。
如所示代码:
/* 1.需利用逻辑与的短路特性实现递归终止。 2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0; 3.当n>0时,执行sum+=Sum_Solution(n-1),实现递归计算Sum_Solution(n)。 */ public int Sum_Solution(int n) { int sum = n; boolean ans = (n>0)&&((sum+=Sum_Solution(n-1))>0); return sum; }
相关文章推荐
- 一个典型的关于java(Overriding && Overloading)问题
- 关于微软面试题:"四人过桥"问题的思考——“n人过桥”问题的演进(Java实现)
- 关于 java 转码 GBK -> UTF-8
- iBaits中,关于insert返回值的问题(注意!!!不必写resultClass= "java.lang.Integer",方法的返回值就是int)
- java 关于-2>>3之类的移位问题
- 关于java逻辑运算符的短路特性
- java关于(io&nio) 的 文件copy例子
- 关于java三元运算符,(i%5==0)?System.out.println():System.out.print(" "); does not work!
- 关于"Java中方法参数的传递方式"的探讨
- Java【多线程知识总结(10)】线程通信之wait()与notify()的运用--模拟指挥官指挥2个连队交替轰炸战区<另外的写法>
- java工具箱---最新更新(关于<a:support />放在某个标签中不可用)
- 关于java.io.IOException: Cannot run program "unzip":
- Java 按位与(&)和短路与(&&)按位或(|)和短路或(||)的区别总结
- 关于java文件编译后,同一个文件出现"$"的class
- Java中关于“Exception in thread "main" java.lang.NoClassDefFound Error
- 关于C++&Java中命令行编译的问题
- 关于java中JDK5的打包,拆包以及"=="和equals的问题
- JAVA中&&和&、||和|(短路与和逻辑与、短路或和逻辑或)的区别
- 关于"Java中方法参数的传递方式"的探讨
- 关于java的Graphics出现“Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: Not supported yet.”