剑指offer-求1+2+。。。+n
题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路
这题限制规则后,主要看语言特性了,哈哈:
public class Solution {
public int Sum_Solution(int n) {
int sum = n;
boolean ans = (n>0)&&((sum+=Sum_Solution(n-1))>0);
return sum;
}
}
//用异常退出递归
public class Solution2 {
public int Sum_Solution(int n) {
return sum(n);
}
int sum(int n){
try{
int i = 1%n;
return n+sum(n-1);
}
catch(Exception e){
return 0;
}
}
}
public class Solution3 {
public int Sum_Solution(int n) {
n = (int) (Math.pow(n, 2)+n)>>1;
return n;
}
}