剑指offer系列——求1+2+…+n

使用语言:JavaScript

题目描述

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

 

示例 1:

输入: n = 3
输出: 6

示例 2: 输入: n = 9 输出: 45   限制: 1 <= n <= 10000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/qiu-12n-lcof

这道题如果单看1+2+...+n是很简单的,一个for循环或者递归就可以完成。可是现在限制了for循环,所以我们可以考虑一下递归,但是递归需要有一个判断条件才能终止递归,题目有限制了if、else、switch、case等关键字及条件判断语句(A?B:C)。可是javascript有可以替代的呀,比如&&

 

/**
 * @param {number} n
 * @return {number}
 */
var sumNums = function(n) {
     var sum = n;

    ((n > 0) && (sum += sumNums(n - 1)))
    return sum;
};

这样不就行啦。

 

不过书上的解法没有使用递归,而是使用了构造函数,指针等方法,等以后看懂了再更新。

 

posted @ 2020-10-12 22:36  ellenxx  阅读(98)  评论(0编辑  收藏  举报