剑指offer-求1+2+。。。+n

剑指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;
    }
}

你可能感兴趣的:(算法练习)