您的位置:首页 > 编程语言 > Java开发

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 短路与
相关文章推荐