JS实现给定参数数范围内的有条件求和(以质数求和与斐波那契数列求和为例)
文章目录
- 前言
- 一、应用场景
- 二、算法举例
- 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实现给定参数数范围内的有条件求和(以质数求和与斐波那契数列求和为例)相关推荐
- java从键盘输入数据斐波那契数_从键盘输入一个正整数n,打印出斐波那契数列的前n个元素...
import java.util.*; public class Test { public static void main(String[] args){ Scanner in = new Sca ...
- 实现斐波那契数列(js),以及复杂度降阶
##实现斐波那契数列(js),以及复杂度降阶 ###背景--兔子数列 假设第1个月有1对刚诞生的兔子,第2个月进入成熟期,第3个月开始生育兔子,而1对成熟的兔子每个月会生1对兔子,兔子永远不会死去** ...
- 【js算法】js斐波那契数列的多种算法
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列" ...
- 蓝桥杯练习题:对给定整数基于斐波拉契数列构造字符串
文章目录 一.提出问题 二.解决问题 (一)分析 (二)编程 1.构造[1, n]范围内的斐波拉契数列表 2.基于斐波拉契数列构造字符串函数 3.编写主控程序 4.运行程序,查看结果 三.优化算法 一 ...
- js算法集合(二) javascript实现斐波那契数列 (兔子数列) Javascript实现杨辉三角...
js算法集合(二) 斐波那契数列.杨辉三角 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列和杨辉三角进行研究,来加深对Javascript的理 ...
- 4.2寻找水仙花数(阿姆斯特朗数)、完美数,生成斐波那契数列,Craps赌博游戏
寻找阿姆斯特朗数 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯 ...
- 【蓝桥基础练习】斐波拉契数列;杨辉三角形;查找整数;特殊回文数;特殊的数字
①试题 基础练习 Fibonacci数列 资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 Fibonacci数列 ...
- python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)
文章目录 斐波那契数列 阿姆斯特朗数 十进制转二进制bin.八进制oct.十六进制hex 补充进制转换源码 python中::和:的区别 说明:本篇博文的知识点大部分来自 Python3 实例 斐波那 ...
- 打印水仙花数oracle,javaScript实现回文数、水仙花数判断和输出斐波那契数列
javaScript实现回文数.水仙花数判断和输出斐波那契数列 发布时间:2020-07-22 01:15:37 来源:51CTO 阅读:422 作者:Cynthia_xie // 判断一个数是不是回 ...
最新文章
- 大战设计模式【16】—— 桥接模式
- MySQL查看与修改编码方式(mysql、数据库、表)
- 【深度学习】我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)!
- 看的一个pdf说的。。大型网站架构演变
- python进程池:multiprocessing.pool
- 一步步编写操作系统 59 cpu的IO特权级1
- Instant Client 配置
- 登录文件传输服务器,生信小技巧之:在本地与服务器间快速传输文件,无密码登录远端服务器...
- 图像处理之调整亮度与饱和度
- Bailian2748 全排列【全排列】(POJ NOI0202-1750)
- linux 串口驱动
- 数字化营销的意义所在
- OpenCV 直方图计算
- 电脑桌面提醒事项软件哪些可以定时弹出窗口提醒
- 汽车厂VIN码生成软件
- random用法 python_python:random用法
- Lux 安装以及使用
- spotify能免费下歌吗_什么是Spotify Duo,它适合您吗?
- html自动展示视频,html5纯css3带自动视频播放的iPhone4手机360度旋转展示
- 中断服务子程序 ISR