文章目录

  • 前言
  • 一、应用场景
  • 二、算法举例
    • 1. 求斐波那契数列中的奇数之和
    • 2. 质数求和
  • 总结

前言

本文给出一种JavaScript算法,用以实现给定参数数范围内的有条件求和。并以求斐波那契数列中的奇数之和、质数求和为例,给出使用方法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、应用场景

构建一种函数方法,传入参数数字,返回小于等于传入参数数字的所有符合条件数字之和。

二、算法举例

1. 求斐波那契数列中的奇数之和

在这道题目中,我们需要写一个函数,参数为一个正整数 num,返回值为斐波那契数列中,小于或等于 num 的奇数之和。
斐波那契数列中,第一和第二个数字都是 1。 后面的每个数字由之前两数相加得出。 斐波那契数列的前六个数字分别为:1、1、2、3、5、8。
比如,sumFibs(10) 应该返回 10。 因为斐波那契数列中,比 10 小的数字只有 1、1、3、5。

代码如下(示例):

function sumFibs(num) {// Perform checks for the validity of the inputif (num <= 0) return 0;// Create an array of fib numbers till numconst arrFib = [1, 1];let nextFib = 0;// We put the new Fibonacci numbers to the front so we// don't need to calculate the length of the array on each// iterationwhile ((nextFib = arrFib[0] + arrFib[1]) <= num) {arrFib.unshift(nextFib);}// We filter the array to get the odd numbers and reduce them to get their sum.return arrFib.filter(x => x % 2 != 0).reduce((a, b) => a + b);
}

2. 质数求和

质数(prime number)是大于 1 且仅可以被 1 和自己整除的数。 比如,2 就是一个质数,因为它只可以被 1 和 2(它本身)整除。 相反,4 不是质数,因为它可以被 1, 2 和 4 整除。

代码如下(示例):

function sumPrimes(num) {function isPrime(num) {for (let i = 2; i <= Math.sqrt(num); i++) {if (num % i == 0)return false;}return true;}if (num <= 0) return 0;const arrPrimes = [];let nextPrimes = 2;while (nextPrimes <= num) {arrPrimes.unshift(nextPrimes);nextPrimes ++;}return arrPrimes.filter(x => isPrime(x)).reduce((a, b) => a+b);
}

该处添加了isPrime函数对质数进行判断。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了一种JS算法的应用方式,实现小于等于给定参数数范围内的有条件求和。
主要步骤是:

  • 创建一个数组,使用whlie循环遍历范围内数字,将范围内要求的数字放入数组;
  • 使用 filter() 方法写入求和数字的筛选条件,过滤掉不符合条件的数字;
  • 使用 reduce() 方法对数组中的剩余的符合条件值求和;
  • 返回求和结果。

JS实现给定参数数范围内的有条件求和(以质数求和与斐波那契数列求和为例)相关推荐

  1. java从键盘输入数据斐波那契数_从键盘输入一个正整数n,打印出斐波那契数列的前n个元素...

    import java.util.*; public class Test { public static void main(String[] args){ Scanner in = new Sca ...

  2. 实现斐波那契数列(js),以及复杂度降阶

    ##实现斐波那契数列(js),以及复杂度降阶 ###背景--兔子数列 假设第1个月有1对刚诞生的兔子,第2个月进入成熟期,第3个月开始生育兔子,而1对成熟的兔子每个月会生1对兔子,兔子永远不会死去** ...

  3. 【js算法】js斐波那契数列的多种算法

    斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列" ...

  4. 蓝桥杯练习题:对给定整数基于斐波拉契数列构造字符串

    文章目录 一.提出问题 二.解决问题 (一)分析 (二)编程 1.构造[1, n]范围内的斐波拉契数列表 2.基于斐波拉契数列构造字符串函数 3.编写主控程序 4.运行程序,查看结果 三.优化算法 一 ...

  5. js算法集合(二) javascript实现斐波那契数列 (兔子数列) Javascript实现杨辉三角...

    js算法集合(二)  斐波那契数列.杨辉三角 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列和杨辉三角进行研究,来加深对Javascript的理 ...

  6. 4.2寻找水仙花数(阿姆斯特朗数)、完美数,生成斐波那契数列,Craps赌博游戏

    寻找阿姆斯特朗数 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯 ...

  7. 【蓝桥基础练习】斐波拉契数列;杨辉三角形;查找整数;特殊回文数;特殊的数字

    ①试题 基础练习 Fibonacci数列 资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 Fibonacci数列 ...

  8. python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)

    文章目录 斐波那契数列 阿姆斯特朗数 十进制转二进制bin.八进制oct.十六进制hex 补充进制转换源码 python中::和:的区别 说明:本篇博文的知识点大部分来自 Python3 实例 斐波那 ...

  9. 打印水仙花数oracle,javaScript实现回文数、水仙花数判断和输出斐波那契数列

    javaScript实现回文数.水仙花数判断和输出斐波那契数列 发布时间:2020-07-22 01:15:37 来源:51CTO 阅读:422 作者:Cynthia_xie // 判断一个数是不是回 ...

最新文章

  1. 大战设计模式【16】—— 桥接模式
  2. MySQL查看与修改编码方式(mysql、数据库、表)
  3. 【深度学习】我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)!
  4. 看的一个pdf说的。。大型网站架构演变
  5. python进程池:multiprocessing.pool
  6. 一步步编写操作系统 59 cpu的IO特权级1
  7. Instant Client 配置
  8. 登录文件传输服务器,生信小技巧之:在本地与服务器间快速传输文件,无密码登录远端服务器...
  9. 图像处理之调整亮度与饱和度
  10. Bailian2748 全排列【全排列】(POJ NOI0202-1750)
  11. linux 串口驱动
  12. 数字化营销的意义所在
  13. OpenCV 直方图计算
  14. 电脑桌面提醒事项软件哪些可以定时弹出窗口提醒
  15. 汽车厂VIN码生成软件
  16. random用法 python_python:random用法
  17. Lux 安装以及使用
  18. spotify能免费下歌吗_什么是Spotify Duo,它适合您吗?
  19. html自动展示视频,html5纯css3带自动视频播放的iPhone4手机360度旋转展示
  20. 中断服务子程序 ISR

热门文章

  1. java编写文字三国杀初学_文字版三国杀开发
  2. Jetpack-Lifecycle
  3. 2023 typecho Diaspora 清新文艺自适应主题模板
  4. ios怎么引入masonry_iOS开发-Masonry简易教程
  5. Android实现微信和QQ“在其他应用打开”列表中添加自己的应用,并获取文件路径。
  6. 不知道如何进行整篇文档翻译?尝试一下这几款软件吧
  7. js-md5前后端使用
  8. 文本在线查重系统(三)
  9. Freemarker 浅析
  10. 播放器授权后播放内容时出现Cnario logo水印