面试题46. 求1+2+…+n
题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路:
- 不能用for和while,说明不能循环。可以用递归替代循环
- 不能用if,else,case,说明不能用条件判断,可以用短路替代
public class Solution {
public int sum(int n) {
int result = n;
boolean b = (n > 0) && ((result += sum(n-1)) > 0);
return result;
}
}