首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js1到20的和用js写

要计算JavaScript中1到20的和,可以使用多种方法。以下是几种常见的方法:

方法一:使用for循环

代码语言:txt
复制
let sum = 0;
for (let i = 1; i <= 20; i++) {
    sum += i;
}
console.log(sum); // 输出结果为210

方法二:使用while循环

代码语言:txt
复制
let sum = 0;
let i = 1;
while (i <= 20) {
    sum += i;
    i++;
}
console.log(sum); // 输出结果为210

方法三:使用递归函数

代码语言:txt
复制
function sumToN(n) {
    if (n === 1) return 1;
    return n + sumToN(n - 1);
}
console.log(sumToN(20)); // 输出结果为210

方法四:使用数学公式(等差数列求和公式)

代码语言:txt
复制
const n = 20;
const sum = (n * (n + 1)) / 2;
console.log(sum); // 输出结果为210

解释

  • for循环:通过迭代从1到20的每个数字,并将它们累加到一个变量中。
  • while循环:与for循环类似,但使用条件判断来控制循环的执行。
  • 递归函数:通过调用自身来逐步减少问题的规模,直到达到基本情况(即n等于1)。
  • 数学公式:利用等差数列求和公式 ( S_n = \frac{n(n+1)}{2} ),其中 ( n ) 是项数。

应用场景

这些方法适用于任何需要计算一系列连续整数之和的场景,例如统计、数据分析、算法实现等。

优势

  • 简洁性:数学公式方法最为简洁。
  • 效率:数学公式方法在计算大量数据时效率最高,因为它避免了循环的开销。
  • 可读性:for循环和while循环方法易于理解和维护。

通过以上几种方法,你可以根据具体需求选择最适合的方式来计算1到20的和。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用原生js写一个多动症的简历

用原生js写一个"多动症"的简历 预览地址 源码地址 最近在知乎上看到@方应杭用vue写了一个会动的简历,觉得挺好玩的,研究一下其实现思路,决定试试用原生js来实现。...没错,做到这一步就完成了原理的第一部分 再想象一下,在往页面里面塞啊的时候,我还想改变啊字的字体颜色以及网页背景颜色,那应该怎么做呢,是不是执行下面的代码就可以呢,没错,只不过更改字体和背景色不是突然改变的...简历样式编辑模块) 、 以及vQuery(封装的dom操作模块) 最后app.js(入口模块)再将几个模块的功能结合起来完成整个项目。...因为定时器的操作是异步行为,而我们的简历生成过程会涉及到多个异步操作,所以为了看到如首页预览链接的效果,必须等前一个步骤完成之后,才能执行下一步步骤,这里首先使用的回调函数的解决方案,大家可以从github...但是含有一个问题,如果涉及到很多个异步操作,我们是很难通过上面的方式将异步流程管理起来的。

6.9K70
  • 用原生js写一个多动症的简历

    用原生js写一个"多动症"的简历 预览地址 源码地址 最近在知乎上看到@方应杭用vue写了一个会动的简历,觉得挺好玩的,研究一下其实现思路,决定试试用原生js来实现。...没错,做到这一步就完成了原理的第一部分 再想象一下,在往页面里面塞啊的时候,我还想改变啊字的字体颜色以及网页背景颜色,那应该怎么做呢,是不是执行下面的代码就可以呢,没错,只不过更改字体和背景色不是突然改变的...) 、 以及vQuery(封装的dom操作模块) 最后app.js(入口模块)再将几个模块的功能结合起来完成整个项目。...因为定时器的操作是异步行为,而我们的简历生成过程会涉及到多个异步操作,所以为了看到如首页预览链接的效果,必须等前一个步骤完成之后,才能执行下一步步骤,这里首先使用的回调函数的解决方案,大家可以从github...但是含有一个问题,如果涉及到很多个异步操作,我们是很难通过上面的方式将异步流程管理起来的。

    5.3K20

    实战 | 用原生js写一个多动症的简历

    没错,做到这一步就完成了原理的第一部分 再想象一下,在往页面里面塞啊的时候,我还想改变啊字的字体颜色以及网页背景颜色,那应该怎么做呢,是不是执行下面的代码就可以呢,没错,只不过更改字体和背景色不是突然改变的...(简历编辑模块) 、 stylesEditor(简历样式编辑模块) 、 以及vQuery(封装的dom操作模块) 最后app.js(入口模块)再将几个模块的功能结合起来完成整个项目。...因为定时器的操作是异步行为,而我们的简历生成过程会涉及到多个异步操作,所以为了看到如首页预览链接的效果,必须等前一个步骤完成之后,才能执行下一步步骤,这里首先使用的回调函数的解决方案,大家可以从github...我们来看一下promise分支中app模块最终的写法 可以看到,代码清爽了很多,纵向发展,应用第一步第二步第三步...一眼就能够看出来,当然实现的逻辑是将原来的相关的模块用Promise包装起来,并且在原来回调函数执行的地方...但是含有一个问题,如果涉及到很多个异步操作,我们是很难通过上面的方式将异步流程管理起来的。于是我们需要做下面一件事 内部的next函数就是 thunk 的回调函数。

    4K10

    一个用js写的接口http调试程序

    公司有非常多手机app的项目。手机app又要常常訪问后台提交与查询数据。 所曾经端app与后台的开发与測试过程中接口调试是一个常常要做的工作。...而非本项目的人往往还难以帮上忙(必需要读懂别人写的程序,等等的。...开发们都懂的…) 所以自己利用了业余时间用js+hta的方式实现了一个简单的接口调试程序.能够由非开发者对比接口文档就能够进行接口的调试和測试。...下面是程序界面 这是一个机票程序的的接口调用程序,在这个程序中能够调试全部的接口 左側是各个接口的命名,每点击左側的接口名,右側的url和req(请求參数)会对应变为该接口的URL和參数样例,点以下的...程序小巧(10-100k) 该程序入门简单(仅仅须要懂一点html语法与js就可以), 改动easy(用记录本打开就能改动), 执行easy(windows环境下双击执行就可以) 实在是居家旅行,出差工作

    2K10

    【机组】指令控制模块实验的解密与实战

    实验2:PC计数器加1 ● 完成实验1后,重置各控制信号如下: H20 H19 H18 H17 H16 H15 H14 EIR1 EIR2 IR2-O PC-O ELP JS0 JS1 1 1 1 0...四、 实验步骤 此次实验涉及到使用地址总线,故需将PC-OUT用短8位扁平电缆连接地址总线AJ1;连接机箱平台右侧的二进制输入,故需连接将PC-IN用短8位扁平电缆连接二进制开关单元J03,其余具体连线如下...H20 H19 H18 H17 H16 H15 H14 EIR1 EIR2 IR2-0 PC-0 ELP JS0 JS1 1 0 1 1 0 1 1 实验平台处于运行状态,按下机箱的PLS1脉冲按键,...H20 H19 H18 H17 H16 H15 H14 EIR1 EIR2 IR2-0 PC-0 ELP JS0 JS1 1 1 1 0 1 1 1 实验3 置当前指令寄存器 (1)step1:使实验平台处于运行状态...H20 H19 H18 H17 H16 H15 H14 EIR1 EIR2 IR2-0 PC-0 ELP JS0 JS1 0 1 1 1 1 0 0 按下机箱的PLS1脉冲按键,此时地址总线上应显示5FH

    16910

    《selenium2 python 自动化测试实战》(15)——调用js控制滚动条等操作

    driver.maximize_window() driver.implicitly_wait(6) driver.get("https://tieba.baidu.com/index.html") sleep(1) # 用目标元素参考去拖动...() sleep(2) # 拉到页面顶部 js1 = 'document.documentElement.scrollTop=0' driver.execute_script(js1) sleep(2)...,这里给大家的方法是下拉到我们定位到的文字位置,进行这个操作后“运动”的位置会被拉到页面最上面,也就是说页面会显示从“运动”开始往下的页面(解释不清楚,自己运行看一下就知道了) 另一个就是页面拉到顶端和低端的位置...两个方法都是经过测试没有问题的。我加那么多sleep是为了让大家看清楚,自己写的时候没必要写那么多sleep,因为自动化测试不用人为去看。...如果不明白什么意思,说实话,我也不知道,但是我就是会用,所以大家也不必纠结到底是怎么回事,只要知道这东西就要求这么写就可以了,接下来我们还会继续介绍一些,只要你真正的写三五遍,你自然就知道该怎么写了,还是我之前说的

    1.3K90

    前端-用 JS 写一个同 Excel 表现的智能填充算法

    排除了AI的加成,发现这个功能其实也可以通过数学理论和简单代码来实现。经过一番折腾,终于用JS实现了大致的功能,然后我把它名为 smart-predictor。...在明白这些结论之后,我们就可以去讨论它到底是怎么实现的。 Separator 我们用数组 [1,2,'a1c','a2c']作为例子。...可以注意到,我会提取每一个元素的纯数字部分出来,然后把其余部分通过一个数组储存起来。...假设有一个数组 [1,2,'a1c','a2c',6,8],元素 1和 2就应该被分配到名为 Number的组去, a1c和 a2c则会被分配到名为 ac的组里面,而 6和 8则会被另外分配到名为 Number1...代码请戳:linearRegression.js 通过这条公式,我们可以轻易得到数组 [1,3]的斜率和偏移量为 {a:2,b:1},然后就可以知道以后的数据走向将会是 [5,7,9,...]。

    1.5K40

    超详细的怎样用MarkDown写目录和表格

    超详细的怎样用MarkDown写目录和表格 强烈推介IDEA2020.2破解激活...,IntelliJ IDEA 注册码,2020.2 IDEA 激活码 超详细的怎样用MarkDown写目录和表格 相信看过许多大佬的博客都会心生感慨,为什么大佬的文采就这么好,条理这么清晰呢,每篇文章的开头还有自己博客的目录导航...其实用MarkDown写目录挺简单的,接下面就进行详细介绍: 用博客写目录要用到个 " 文章目录 超详细的怎样用MarkDown写目录和表格 升职 加薪 赚大钱 标题增加MarkDown...]即可,目录的等级是和标题的等级是一致的 我在上面加了很多一样的字,就是为了跳转到指定的目录,是不是很简单呢 标题增加MarkDown的表格 接下里是介绍在MarkDown中怎样使用MarkDown自带的表格...表格是向左向右对齐详解 列表的向左对齐和向右对齐,也挺简单的,下面也来作一下详细说明 在这个符号的后面加上 " |:-- "(注:双引号不用加),在左边一竖两中划线中间加上英文输入法的冒号,就是向左对齐

    1.3K30

    深入理解JavaScript的Event-Loop机制

    参与JS代码执行过程的线程有4个: JS引擎线程:解析和执行JS脚本主线程 事件触发线程:浏览器内核进程,主要用于控制事件(比如:键盘事件),当监听到事件触发,事件触发线程会将,事件的处理函数push到事件队列...HTTP异步请求线程:通过监听XMLHttpRequest连接的readyState状态变更,将该状态的回调函数push到事件队列中,等待执行。...JavaScript 的事件队列的执行和添加是两个完全独立的过程,确保在事件循环过程中将浏览器监听到的新事件添加到对应事件队列中去,当前执行的事件处理不受影响。...'); 我们来分析上面代码执行过程: 执行 console.log('js1'),js引擎任务该任务同步宏任务 ,直接输出执行结果:js1; 执行setTimeout(function() {console.log...('setTimeout');}, 0),js引擎认为是异步任务,开启定时器线程控制setTimeout,W3C规范规定setTimeout时间间隔最小为4ms,当计时器到4ms时将回调函数push 到事件队列

    63320

    用node.js从零开始去写一个简单的爬虫

    如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定,步骤其实很简单...图片.png 6:安装第三方包(后面程序会直接调用包的模块) 说明:由于http模块、fs模块都是内置的包,因此不需要额外添加。 这里安装cheerio包,和request包。...图片.png 说明:npm(nodejs package manager),nodejs包管理器; –save的目的是将项目对该包的依赖写入到package.json文件中。...如果想要将爬取的数据和图片分类放好,那就事先建立一个data和image文件夹准备着。...图片.png 7:重点内容,打开first_spider,并一行一行的敲代码,如果你不想写代码的话,去网站上找一些代码过来进行测试即可。

    1.2K11

    全志平台Tina系统R18用dragonSN同时烧写key到efuse和flash

    全志平台Tina系统R18用dragonSN同时烧写key到efuse和flash 在产品生产的过程中,客户可能会选择使用安全固件,这样的话安全相关的rotpk是烧写到efues中的,而普通的key诸如...bt_mac \ wifi_mac是需要烧到flash中的private中的,这个时候就需要做如下修改: 1.工具dragonSN支持同时烧录两种存储介质的KEY         2.5.7版本以上的dragonSN...2.5.7之前很多个版本应该就就已经支持了,没有测试,不能确定是哪个版本开始支持的。...(3)将重新编译出来的uboot 复制到相应的地方,如果没有修改打包时获取uboot的位置的话,这一步可以不做 (4)pack 重新编译打包 (5)使用dragonSN,全局变量设置为安全key,烧写key...(6)这个时候烧进去private的key没有文件系统,是裸数据,不能挂载之后看到,可以用hexdump看到: root@TinaLinux:/tmp# hexdump -C /dev/by-name

    24510

    appium+python自动化98-非select弹出选择框定位解决

    前言 遇到问题:document.getElementsByClassName(…)[0] is undefined 选择框如果是select标签的,可以直接用select专用的方法去定位点击操作。...js调试 1.首先尝试了selenium的定位方法,发现点输入框是可以弹出选项的,只是点选项死活点不了。...执行js,部分参考代码如下 js1 = "document.getElementsByClassName('el-input__inner')[2].click();" self.driver.execute_script...(js1) time.sleep(1) js2 = "document.getElementsByClassName('hover')[0].click();" self.driver.execute_script...解决办法:把鼠标重新移过去 2.使用ActionChains移动鼠标到需要点击的元素上,参考代码 from selenium import webdriver from selenium.webdriver.common.action_chains

    1.8K20

    基于豆瓣和妹子的api用React Native写的demo for android

    最近一直在学React Naitve,可以说React Native的确有他自身强大的地方,不管是运行效率还是热更新都和一般的h5有的一比,当然因为面世的时间还不算太久,版本更新又十分的快,所以坑也多,...对于一般的移动开发者来说学习成本也蛮大的, 个人觉得用React Naitve做混合开发,把一些需要经常变化的模块用react native开发还是一个不错的选择。...demo就是已React Naitve的官方文档和学习过程中踩过的这种坑写出来仅供学习demo级东西,因为没有苹果电脑,只试运行android....数据方面是用豆瓣的Gank的妹子api 所用到的第三方控件如下: React-native-vector-icons(一个可以用的网上图标库,不用自己设计), React-native-scrollable-tab-view...(通用的Tab控制器),这上面两个的开源的结合可以参考http://www.jianshu.com/p/b0cfe7f11ee7这篇博客, React-native-tab-navigator(底部的tab

    85120

    Selenium2+python自动化65-js定位几种方法总结

    前言 本篇总结了几种js常用的定位元素方法,并用js点击按钮,对input输入框输入文本 一、以下总结了5种js定位的方法 除了id是定位到的是单个element元素对象,其它的都是elements返回的是...2.js的定位语法里面id定位获取的是单个元素对象,可以直接用click()方法点击元素 ?...3.定位到输入框,可以直接用value="xxx"方法输入内容 ?...4.ByName和ByTagName跟上面class一样,都是定位的一组元素 三、CSS选择器 1.css选择器定位到的也是一组元素,语法跟前面学到的css语法是一样的 ?...= 'document.getElementById("blog_nav_contact").click();' driver.execute_script(js1) # 输入账号 js2 = 'document.getElementsByClassName

    1.3K70

    20M 文件用 Java 压缩从30秒到1秒的优化过程

    之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加,最后测了一下压缩20M的文件竟然需要30秒的时间...打印的结果如下,时间大概是30秒。 fileSize:20M consum time:29599 第一次优化过程-从30秒到2秒 进行优化首先想到的是利用缓冲区 BufferInputStream。...,就想着用NIO中知识进行优化一下。...------Channel fileSize:20M consum time:1416 内核空间和用户空间 那么为什么从内核空间转向用户空间这段过程会慢呢?首先我们需了解的是什么是内核空间和用户空间。...,可以让你深入学习到各种不同的知识。

    70520
    领券