利用JavaScript打印出Fibonacci数(不使用全局变量)
Posted 北磬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用JavaScript打印出Fibonacci数(不使用全局变量)相关的知识,希望对你有一定的参考价值。
从汤姆大叔的博客里看到了6个基础题目:本篇是第4题 - 利用JavaScript打印出Fibonacci数(不使用全局变量)
解题关键:
1、Fibonacci数列的规律
2、递归
解点1:Fibonacci数列的规律
1,1,2,3,5,6,13,19,32.... //从第3项开始,每项都是前两项之和
解点2:递归
递归是一个复杂的概念,此题可以不用递归解决,但题目要求不能使用全局变量,所以我只能想到递归方法。简单的说,递归就是函数调用函数本身,但递归一定要有一个出口,否则就无限调用下去……下面对Fibonacci数列进行一下罗列并找规律:
第1项,1 第2项,第1项 + 第0项 第3项,第2项 + 第1项 ..... 依此类推,那么可得 Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)
那么它的出口处就在1这里,即求的项数小于2时,直接返回1,而不再调用自己(一旦不调用自己了,也就意味着递归结束)
以下是该题的实现代码:
function Fibonacci(n) { //显示Fibonacci的前n项 function Fibo(i) { //求Fibonacci的第i项 return i<2 ? i : Fibo(i-1) + Fibo(i-2); //此处定义了递归的规则 } for(var i=1; i<=n; i++) { console.log( Fibo(i) ); } } Fibonacci(5); //1,1,2,3,5
此题解答完毕!
以上是关于利用JavaScript打印出Fibonacci数(不使用全局变量)的主要内容,如果未能解决你的问题,请参考以下文章
打印出1-10000之间的所有对称数(JavaScript)
尝试使用递归来解决Fibonacci问题(javascript)。
习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
[PTA]习题6-4 使用函数输出指定范围内的Fibonacci数
打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。(分别利用while循环和for循环)