描述

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

解题思路

不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C),因为题目划定了很多限定条件,那么就需要另辟蹊径

递归 时间复杂度O(n) ,空间复杂度O(n)

从1加到n使用递归算法

    public static int Sum_Solution(int n) {
        if(n <= 0){
            return n;
        }
        return Sum_Solution(n-1) +n;
    }

公式推演 时间复杂度O(n) ,空间复杂度O(1)

1+2+3+...+n平常的解题思路来说可以使用(n+1)*n/2来得出结论,但是限定不能使用乘除法,那么可以使用(n+图片说明 ) >>1来代替

    public static int Sum_Solution(int n) {
      return (int)(Math.pow(n,2)+n) >> 1;
    }