斐波那契的javascript实现和优化

本文介绍斐波那契数列的基本概念,并通过JavaScript实现递归算法,包括普通版、三目运算符优化版及使用arguments.callee进行自我引用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

斐波那契是1,1,2,3,5,8,13,21。。。。。 即前两项之和为第三项。程序实现如下

普通版的斐波那契:

 1 <script type="text/javascript">
 2 function f(num)
 3 {
 4 
 5   if(num<=0)
 6 
 7  {
 8 
 9     console.log('请输入大于0的正整数');
10       return ; 
11 
12   }
13 
14    else if(num<=2 && num>0)
15   {
16      return 1;
17  }
18    else
19  {
20   return f(num-2)+f(num-1); 
21    }
22 }
23 
24 </script>

 

用三目运算符优化如下:

 1 <script type="text/javascript">
 2 function f(num)
 3 {
 4 
 5     if(num<=0)
 6    {
 7       console.log('请输入大于0的正整数');
 8       return ; 
 9     }
10   return num<=2 && num>0 ? 1 : f(num-1)+f(num-2); 
11 }
12 
13 
14 </script>

 

但是这样函数内部调用了函数的名称,假设该函数要改名,那就相当不完善了,函数内部和函数名紧紧耦合在一起了。所以可以用arguments.callee来表示该函数本身

进一步优化如下

 1 <script type="text/javascript">
 2 function f(num)
 3 {
 4 
 5     if(num<=0)
 6    {
 7       console.log('请输入大于0的正整数');
 8       return ; 
 9     }
10 
11   return num<=2 && num>0 ? 1 : arguments.callee(num-1)+arguments.callee(num-2); 
12 }
13 
14 
15 </script>

 

至此,简单的优化就做成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值