jz64.求1+2+...n

题目描述

题解

因为运算符号和循环以及判断语句都不能用. 所以只能考虑逻辑运算符进行计算(&&, ||,!)

对于逻辑运算符有个短路 的性质

  • AA && BB 若AA为false, 则会直接返回false, 造成BB的短路
  • AA || BB 若AA为true, 则会直接返回true, 造成BB的短路

我们可以利用该短路条件作为递归的终止条件, 避免使用if判断语句

1
2
3
4
5
6
7
8
9
public class jz64 {
int res = 0;
public int sumNums(int n) {

boolean x = n > 1 && sumNums(n - 1) > 0;
res += n;
return res;
}
}
-------------本文结束感谢您的阅读-------------
可以请我喝杯奶茶吗