“斐波那契数列”的两种算法
斐波那契数列有个规律:从第三个数开始,每个数是前两个数之和,比如:
1 1 2 3 5 8 13 21 34 55......
现在通过两种方式(递归与非递归)算数列中第N个值,代码如下:
/** 
* 斐波那契数列算法,从第三个数开始,每个数是前两个数之和:1 1 2 3 5 8 13 21 34 55 
* 求第N个数的两种算法,分递归和非递归两种 
*/ 
public class Fib { 
        public static void main(String[] args) { 
                System.out.println(f(20)); 
                System.out.println(fx(20)); 
        }

//递归方式 
        public static int f(int n) { 
                //参数合法性验证 
                if (n < 1) { 
                        System.out.println("参数必须大于1!"); 
                        System.exit(-1); 
                } 
                if (n == 1 || n == 2) return 1; 
                else return f(n - 1) + f(n - 2); 
        }

//非递归方式 
        public static int fx(int n) { 
                //参数合法性验证 
                if (n < 1) { 
                        System.out.println("参数必须大于1!"); 
                        System.exit(-1); 
                } 
                //n为1或2时候直接返回值 
                if (n == 1 || n == 2) return 1;

//n>2时候循环求值 
                int res = 0; 
                int a = 1; 
                int b = 1; 
                for (int i = 3; i <= n; i++) { 
                        res = a + b; 
                        a = b; 
                        b = res; 
                } 
                return res; 
        } 
}

运行结果:
6765 
6765

Process finished with exit code 0

还是递归的代码简单些,不过递归总体来说是以空间换时间,速度快,耗内存。
非递归比较省内存,速度稍微慢些。

“斐波那契数列”的两种算法相关推荐

  1. C语言斐波那契数列求和两种方法

    递归调用函数: #define _CRT_SECURE_NO_WARNINGS int fun(int n); #include<stdio.h> int main() {//斐波那契数列 ...

  2. php算法求出兔子数列,PHP算法:斐波那契数列的N种算法

    前言 前段时间,遇到优化计算斐波那契数列的常规递归方法,但是一时间并没有及时想到很好的方法,所以后面查找了相关资料,总结了多种计算解法,所以分享出来,和大家一起交流学习. 斐波那契数是什么 斐波那契数 ...

  3. C语言中经典算法——斐波那契数列的几种算法

    斐波那契数列的递推公式: 我们尝试计算斐波那契数列的第n项并输出. 1.递归法 #include<stdio.h> int fib(int m) {if(m>=3){return f ...

  4. 斐波那契数列的两种解题方式

    第一种方式:采用递归 ​ def Fibonacci (n):if n==1 or n==2 : return 1else :return Fibonacci(n-2)+Fibonacci(n-1) ...

  5. 斐波那契数列的两种实现呢

    //1.用递归实现function digui($n){if ($n <= 0) return 0; if ($n == 1) return 1; return digui($n - 2) + ...

  6. 斐波那契数列的两种实现思想

    1 非递归 python def fbnq_2():a=0b=1n = input()for i in range(int(n)):c=a+ba=bb=cprint(a) fbnq_2() js fu ...

  7. Python中斐波那契数列的四种写法

    在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,"你学过数据结构吗?&qu ...

  8. 斐波拉契数列 Java三种实现

    对于很多Java初学者来说,求解斐波拉契数列,基本上所使用的方式都是递归.对于求解斐波拉契数列来说,递归的实现方式的效率是极其低下的. 在此,我贴出三种实现(递归,迭代,动态规划): 我们先看代码的执 ...

  9. 斐波那契数列的四种实现

    来自:Crossin的编程教室 孔乙己自己知道不能和他们谈天,便只好向 Intern 说话.有一回对我说道,"你写过代码么?"我略略点一点头.他说,"写过代码,--我便考 ...

最新文章

  1. html onfoucs状态事件,HTML onfocusin事件用法及代码示例
  2. CentOs7 卸载 MySql + 通过 yum 安装 MySql
  3. 使用Spring的NamedParameterJdbcTemplate完成DAO操作
  4. Maven阿里云与本地仓库配置
  5. 【我的物联网成长记5】如何进行物联网大数据分析?
  6. gitlab客户端下载配置
  7. Google 已经能用 AI 来预测你的航班是否延误了!
  8. 信息收集端口扫描工具masscan
  9. excel保存csv文件数字失真解决办法
  10. hihocoder题目选讲
  11. Spark整理:相关名词解释
  12. 身高预测_大部分都很准哦
  13. JAVA并发十二连招,你能接住吗?
  14. Python:6-1 水仙数的统计1 (4分)
  15. 广东省2022下半年软考报名时间已定!
  16. 2019美亚杯个人赛刷题
  17. c语言--余数正负判断,printf函数占位符
  18. 电子学会2023年3月青少年软件编程python等级考试试卷(四级)真题,含答案解析
  19. Matlab/Simulink-PFC-Boost功率因数校正电路仿真搭建
  20. QML遮罩效果Demo

热门文章

  1. 【错误记录】无法打开 “xxx“ , 因为 Apple 无法检查其是否包含恶意软件
  2. 【运筹学】单纯形法总结 ( 单纯形法原理 | 单纯形法流程 | 单纯形表 | 计算检验数 | 最优解判定 | 入基变量 | 出基变量 | 方程组同解变换 ) ★★★
  3. 【OpenGL】三、Visual Studio 2019 配置 GitHub ( 将项目上传到 GitHub )
  4. 【Android 应用开发】Activity 任务亲和性 taskAffinity 设置 ( taskAffinity 属性 )
  5. JVM(一) ---JVM的数据模型
  6. bzoj 1863 二分+dp check
  7. PHP HashTable总结
  8. Google Maglev 牛逼的网络负载均衡器(转)
  9. stdafx.h头文件
  10. 网页瀑布流效果实现的几种方式