给出一个整数num,计算出1+2+3+...+num的和;尝试不使用循环的情况下完成

img


给出一个整数num,计算出1+2+3+...+num的和;尝试不使用循环的情况下完成

直接return (num+1)*num/2;

等差数列求和公式一套用就行了

递归
或者
sum=n*(n+1)/2;

用递归

img

function Sum(n) {
        //递归
        if (n === 1) return 1;
        return n + Sum(n - 1)
    }
Sum(5)

等差数列求和公式:n*(n+1)/2

两种办法,都是一行代码即可,满意请采纳
递归

function sum(num) {
  return num === 1 ? 1 : num + sum(num - 1)
}

求和公式

function sum(num) {
  return (num+1) * num / 2;
}

img



<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let num = 2, startindex = 1;

        var sum = 0;
        //  方法-
        // sum = (startindex + num) * num / 2
        // console.log(sum)

        // 方法二
        // function total(star, end) {
        //     sum += star;
        //     star++;
        //     if (star <= end) {
        //         arguments.callee(star, end)
        //     }

        // }
        // console.log(total(startindex, num), sum, '==total')

        // 方法三
        while (startindex <= num) {
            sum += startindex;
            startindex++

        }
        console.log(sum, '==sum')



    </script>
</body>

</html>