描述

求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;
}

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

还不快抢沙发

添加新评论