描述

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

数据范围: 0 0<n≤200
进阶: 空间复杂度 O(1) ,时间复杂度 O(n)

示例
// 输入:
5
// 返回值:
15

// 输入:
1
// 返回值:
1
解题思路

1.递归

2.找规律:sum = n * (n + 1) / 2

代码实现

Golang:

/**
 * [JZ64-中等] 求1+2+3+...+n
 *
 * @param n int 整型
 * @return int 整型
 */
func sumOfOneToN(n int) int {
    return n * (n + 1) / 2
}

JavaScript:

function Sum_Solution(n) {
    return n && n + Sum_Solution(n-1);
}

PHP:

function Sum_Solution($n)
{
    $n > 1 && $n += Sum_Solution($n-1);
    return $n;
}

本文由 一切随风 创作,可自由转载、引用,但需署名作者且注明文章出处。

8 条评论

  1. hgidyfuwpq
    hgidyfuwpq

    速度与激情10

  2. kcenvwwkfn
    kcenvwwkfn

    钢之炼金术师完结篇复仇者斯卡

  3. xvdtavrlya
    xvdtavrlya

    阴谋集团

  4. lxwfmhzhic
    lxwfmhzhic

    尼罗河风暴

  5. zruyjdrlmn
    zruyjdrlmn

    家族史之谜埋葬的过去

  6. admefhfcko
    admefhfcko

    终极斗士

  7. sbbwvjnfto
    sbbwvjnfto

    木匠的祈祷

  8. fqfybrzpvy
    fqfybrzpvy

    先发五虎

添加新评论