zoukankan      html  css  js  c++  java
  • 剑指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;
    };

    这样不就行啦。

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

  • 相关阅读:
    Linux管理用户和组
    const,static,volatile关键字的作用
    Linux 常用命令
    sizeof与strlen的区别
    不使用库函数的字符串处理
    Linux 编译命令参数
    Linux环境变量PATH
    c++ 使用Redis
    二分查找法
    php实现双色球算法
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/13806058.html
Copyright © 2011-2022 走看看