求 1+2+...+n
,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例:
输入:n = 3
输出:6
1 <= n <= 10000
题目分析
此题给了我们很多的限制条件,若我们使用平均法完成则需要使用到乘法,与题目要求不符合,若使用遍历的方式需要使用到循环,依旧不满足题目的要求,因此我们可以考虑使用递归地方法来实现。
首先我们从n开始加,然后将n依次减一进行相加,直到n等于0;
代码实现:
class Solution {
int res = 0;
public int sumNums(int n) {
if(n == 0){//递归终止条件
return res;
}
res += n;
sumNums(--n);//必须是--n,若是n--则是把n作为参数传递再减一的。
return res;
}
}