斐波那契数列与IE9
时间:2022-04-23
本文章向大家介绍斐波那契数列与IE9,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
百度什么都知道:当然也包括斐波那契(Fibonacci)数列
在一般算法教材中,把Fib数列都是当做递归的经典示例来讲解的:
javascript的写法如下:
//递归法(计算到fib(40)时浏览器就挂掉了)
function fib(n){
if (n<=2){
return 1;
}
return fib(n-1) + fib(n-2);
}
在IE9以下的IE浏览器中,跑到fib(40)基本上浏览器就罢工了,比如:
for(var j=1;j<=40;j++){
document.write("fib(" + j + ")=" + fib(j) + "<br />");
}
但是在IE9下,居然能挺过来,看来IE9对javascript引擎的优化确实效果不错
当然,这个数列除了递归,还有其它非递归的解法,一并贴在这里收录一下:
//递归法(计算到fib(40)时浏览器就挂掉了)
function fib(n){
if (n<=2){
return 1;
}
return fib(n-1) + fib(n-2);
}
for(var j=1;j<=40;j++){
document.write("fib(" + j + ")=" + fib(j) + "<br />");
}
document.write("<hr />");
//非递归法1
function fib2(n){
var temp=i=f1=f2=1;
if (n<=2){
return 1;
}
else
{
for(i=3;i<=n;i++){
temp = f1+f2;
f2=f1;
f1=temp;
}
return temp;
}
}
//测试
for(j=1;j<=40;j++){
document.write("fib2(" + j + ")=" + fib2(j) + "<br />");
}
document.write("<hr />");
//非递归法2
function fib3(n){
if (n<=2){
return 1;
}
var x=0,y=1;
for (var j=1;j<n;j++) {
y = x + y;
x = y - x;
}
return y;
}
//测试
for(j=1;j<=40;j++){
document.write("fib3(" + j + ")=" + fib3(j) + "<br />");
}
- JAVA CDI 学习(2) - Scope 生命周期
- JAVA CDI 学习(3) - @Produces及@Disposes
- 3分钟带你学会git向github推送!
- JAVA CDI 学习(4) - @Alternative/@Default/@Any & Extension
- centos6.6 下安装mysql
- silverlight 4 tools for vs2010无法在vs2010 SP1上安装的解决办法
- find命令小结
- Python加圣诞帽
- 多次grep 没有看到输出
- java多线程 基础demo
- 详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
- mybatis 使用tips - 使用多个参数
- 从高的角度看自动化测试
- Django中请求的生命周期
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 有了MinIO,你还会用FastDFS么?
- STP 实验
- 算法集锦(6) |基于GPU框架的tensorflow数据增强算法
- 交换机端口安全实验
- 算法集锦(7)| 实用代码 | Google Colab使用及配置技巧
- 浏览器标签页分屏_不同浏览器同一个tab里面怎么实现分屏?#技能get#
- 微信小程序开发实战(16):交互组件
- Linux常用命令
- 一日一技:使用异或寻找两个孤独的数
- Chrome 85的Referrer-Policy调整对网站分析工具的影响
- 同时搞定Android和iOS的Dart语言(1):Dart初探
- Linux进程控制
- Java自动化测试(HttpClient 13)
- Linux命名管道及函数
- Linux消息队列及函数