斐波那契数列

复制代码
 1 /*
 2 * 斐波那契数0,1,1,2,3,5,8,13
 3 * 求第N个斐波那契数(从第0项开始)
 4 * */
 5 public class Test {
 6     /*这种方法到了N为几十的时候,运算会非常慢
 7      例如N=5,调4和3,4调3和2,3调2和1,有很多重复调用,因此速度非常慢
 8      调用次数是1+2+4+8+……,2^0+2^1+2^2+2^3+……=2^n -1=0.5*2^n -1,最后O(2^n)
 9      */
10    public static  int fbnq(int n)
11    {
12        if (n<=1)
13            return n;
14        return  fbnq(n-1)+fbnq(n-2);
15    }
16     public  static  int fbnq2(int n)
17     {
18         if(n<=1)
19             return  n;
20         int first=0;
21         int second=1;
22         //输入第N项时,加了N-1次
23         for( int i=0;i<n-1;i++)
24         {    //第二个数变为了第一个数,相加的和变为第二个数
25             int sum=first+second;
26             first=second;
27             second=sum;
28         }
29        return  second;
30     }
31     public static void main(String[] args) {
32         System.out.println(fbnq(0));
33         System.out.println(fbnq(1));
34         System.out.println(fbnq(5));
35         System.out.println(fbnq2(64));
36     }
37 }
复制代码

 

posted @   DDD-SagerKing  阅读(100)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示
主题色彩