题目描述:
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
分析:
1+2+3+...+n = n + (n-1) + ( n - 2) + (n - 3) + ....+1 + 0; 这就是递归调用的思想,首先先来看一下普通的递归调用。
public class Solution {
public int Sum_Solution(int n) {
if(n==0){
return n;
}
return n + Sum_Solution(n-1);
}
}
对于Sum_Solution()方法中的内容,我们完全可以用三目运算符来代替,这样写会感觉简洁很多。
public class Solution {
public int Sum_Solution(int n) {
return n==0?n:Sum_Solution(n-1)+n;
}
}