当前位置: 首页 > news >正文

【刷算法】求1+2+3+...+n

题目描述

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

分析

题目要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句,那么首先就要思考怎么才能使n一次次的相加且到0的时候结束。首先递归可以实现每次n-1的相加,即类似于n+f(n-1)这样的。但是这样做的话递归的出口在哪呢,也就是我们不能使用条件语句来控制递归何时停止。

仔细想想还有什么运算符可以达到条件控制的效果,这个时候【且】运算符就出现了,对于A&&B,当A为真时,才会运行到B;如果A为假,则B不会运行。

代码实现

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

相关文章:

  • 浅谈JavaScript错误
  • 洛谷P1341 无序字母对
  • 十三、数据源的配置
  • Promise 使用技巧九则
  • Linux ,强制更新只读文件,强制写入命令
  • 卸载pip工具
  • Ubuntu 12.04将默认集成Landscape管理套件【转】
  • 基础技能 | Git
  • SPP-net原理解读
  • [HDU3710]Battle over Cities
  • Vue学习笔记4
  • 你知道吗?一把能打开100000亿新兴市场的钥匙就攥着你手里!
  • Faiss教程:基础
  • 你的鞋都比你聪明
  • [CF226E]Noble Knight's Path
  • 77. Combinations
  • Druid 在有赞的实践
  • IP路由与转发
  • Laravel核心解读--Facades
  • sessionStorage和localStorage
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue组件定义
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端知识点整理(待续)
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 正则学习笔记
  • 交换综合实验一
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​第20课 在Android Native开发中加入新的C++类
  • !!Dom4j 学习笔记
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (待修改)PyG安装步骤
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (区间dp) (经典例题) 石子合并
  • ****Linux下Mysql的安装和配置
  • .NET BackgroundWorker
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET 设计一套高性能的弱事件机制
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET学习全景图
  • .NET中两种OCR方式对比
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [2023年]-hadoop面试真题(一)
  • [C# 网络编程系列]专题六:UDP编程
  • [codeforces]Checkpoints
  • [C语言]——函数递归
  • [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总
  • [HTML API]HTMLCollection
  • [ListView.View=List]的垂直滚动条
  • [MICROSAR Adaptive] --- Hello Adaptive World