斐波那契数列(意大利语:Successione di Fibonacci),又译为费波拿契数、费氏数列、黄金分割数列。
在数学上,斐波那契数列是以递归的方法来定义:
用文字来说,就是斐波那契数列由0和1开始,之后的斐波那契系数就是由之前的两数相加而得出。
维基百科上有一张经典的图,以斐波那契数为边的正方形拼成的近似的黄金矩形(1:1.618)
同时斐波纳契数是杨辉三角形的每一条红色对角线上数字的和。
那定义搞清楚了,本文的目的是用javascript语言,实现给定一个小于N的范围,然后输斐波那契数列。
质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。
求一定范围内的素数,例如求小于10的素数(2、3、5、7)。
那么如何求小于 N 的素数呢?
这种方式很传统理解上也简单,给定一个范围,那么就逐个循环去试除小于它数。
现在我们假设 N 等于 120
let N = 120;
let primes = [];
// 用于存素数结果集
loop:for(let x=2;x<=N;x++){
for(let k=2;k<x;k++){
if(x%k==0) continue loop;
//一旦有被小于它的数整除,则退出试下一个数
}
//能走到这一步的就是素数了
primes.push(x);
}
console.log(primes.join(','))
/*
得到小于N的素数集合
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113
*/
很显然,每个小于N的数都要跟它前面的数去除一遍,这种方法不是最高效的。
与别的文章不同,本文的目的是以最简单,最快速的方式理解for of 与 for in 的区别
for of 遍历的结果是值,for in 遍历的结果是索引
let arr = ["Apple","Samsung","Nokia","Xiaomi"]
for(let x of arr){
console.log(x)
}
// Apple Samsung Nokia Xiaomi
for(let x in arr){
console.log(x)
}
// 0 1 2 3