题目
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路
(1)直接算会用到除法,pass
(2)迭代会用到循环while
和for
,pass
(3)递归终止条件要用到if
,pass
考虑更改递归的终止条件:通过短路效应实现
本题需要在 n = 1
时终止递归,即:n > 1 && sumNums(n - 1)
, 当 n = 1
时 n > 1
不成立 ,此时 “短路” ,终止后续递归
java代码如下:
class Solution {
int res = 0;
public int sumNums(int n) {
boolean x = n > 1 && sumNums(n - 1) > 0;
res += n;
return res;
}
}