斐波纳契数列的递归与非递归形式
来源:互联网 发布:windows卸载ruby 编辑:程序博客网 时间:2024/05/22 10:28
题目
查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... 注意事项The Nth fibonacci number won't exceed the max value of signed 32-bit integer in the test cases.样例给定 1,返回 0给定 2,返回 1给定 10,返回 34
递归
public int fibonacci(int n) { // write your code here if(n == 1){ return 0; }else if(n ==2 || n == 3){ return 1; }else{ return fibonacci(n - 1)+fibonacci(n -2); } }
使用递归非常简单,但是非常耗时,在n=41的时候就超时了,所以得使用非递归。
非递归
非递归实现,使用两个中间变量,一个a存fibonacci(n - 2),另一个b存fibonacci(n -1),相加后不断交换,直至循环结束。
public int fibonacci(int n) { // write your code here if(n == 1){ return 0; }else if(n ==2 || n == 3){ return 1; }else{ int sum = 0; int a=1,b= 1; for(int i = 4;i<= n;i++){ sum = a+b; a= b; b = sum; } return sum; } }
阅读全文
0 0
- 斐波纳契数列的递归与非递归形式
- java打印输出如下形式数列递归与非递归
- 算法:归并算法的递归与非递归形式
- 菲波拉契数列的递归与非递归算法
- Fibonacci数列的递归与非递归实现
- 菲波拉契数列的递归与非递归算法
- fibonacci数列的递归与非递归实现
- Fibonacci数列的递归与非递归实现
- Fibonacci数列的递归与非递归实现算法详解
- Java面试之斐波纳契数列递归与非递归实现
- Java面试之斐波纳契数列递归与非递归实现
- fibonacci数列 (递归与非递归)
- Fibonacci数列的递归和非递归
- 斐波纳契数列非递归算法
- 斐波那契数列的递归与非递归求解方法&递归的优缺点
- 归并排序的递归形式与非递归形式(C++版)
- 快速排序的递归形式与非递归形式(C++版)
- 【C++】二分查找的递归形式和非递归形式
- 阿里云centos7配置tomcat
- mac git android studio 提交代码到git oschina上去
- linux免交互远程执行脚本,密码在脚本中配置
- js 处理form表单整理成数组,结合php 完成排序功能的实现
- tempList.Count(m => m == "sss") 返回符合要求的对象数量
- 斐波纳契数列的递归与非递归形式
- Linux——问题:解压jdk报错gzip:stdin:not in gzip format
- 安卓-关于EditText的那些事......
- BasicExcel
- trie树 POJ 2503 Babelfish
- Java内部类详解
- spring boot 教程(四) 统一异常处理
- JS控制点击跳转到指定页面,以及返回到上一页
- react-native 之style