题目
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
解题思路
这题其实很简单如果没有上面的限制话, 最简单的方式就是(1 + n) * n / 2;但是无法使用乘除法, 也不能遍历for循环,那么最好的办法就是迭代了, 但是迭代需要在一开始进行判断,这里我们使用短路的逻辑符去进行判断即可。
Java代码
public class SumNums {
int res = 0;
public int sumNums(int n) {
boolean flag = n > 1 && sumNums(n - 1) > 0;
res += n;
return res;
}
}