Tag: 斐波纳契

Fibonacci算法的时间复杂度

所以,我在Java中有一个递归方法来获得’第n个斐波纳契数 – 我唯一的问题是:时间复杂度是多少? 我认为这是O(2 ^ n),但我可能弄错了? (我知道迭代更好,但这是一个练习) public int fibonacciRecursive(int n) { if(n == 1 || n == 2) return 1; else return fibonacciRecursive(n-2) + fibonacciRecursive(n-1); }

斐波那契数列 – 递归求和

好吧,我最初编写了一个简单的代码,根据用户输入从系列中返回斐波纳契数。 n = 5将产生3 .. static int fibonacci(int n) { if (n == 1) return 0; else if (n == 2) return 1; else return (fibonacci(n – 1) + fibonacci(n – 2)); } 我正在考虑修改代码以返回系列的总和而不是仅仅返回系列中的值,并且在尝试执行总和时我不小心将1添加到return语句中,令我惊讶的是,它正确地返回了总和。 对于n = 5,以下代码将返回7。 我不确定这是否是计算总和的正确方法…… 如果我加1,我仍然无法弄清楚该系列的总和是如何工作的。有人可以解释一下吗? static int fibonacci(int n) { if (n == 1) return 0; else if (n == 2) […]

Java程序Fibonacci序列

我正在编写一个“简单”程序来确定Fibonacci序列中的第N个数字。 例如:序列中的第7个数字是:13。我已经完成了程序的编写,它可以工作,但从第40个数字开始它开始延迟,并且需要更长,更长。 我的节目必须到系列中的第100个位置。 我怎么解决这个问题所以它不需要这么长时间? 这是非常基本的程序,所以我不知道所有花哨的语法代码..我的公式是: if n =1 || n = 0 return n; else return F(n-1) + F(n-2); 这很有效,直到它超过第40个学期。 我需要添加什么其他声明才能更快地获得更高的数字?

递归Fibonacci memoization

我需要一些帮助,我正在为Universiy的Programming II课程编写一个程序。 问题是要求使用递归计算斐波纳契数列。 必须将计算出的斐波那契数存储在一个数组中,以阻止不必要的重复计算并减少计算时间。 我设法让程序在没有arrays和记忆的情况下工作,现在我正在尝试实现它而且我被卡住了。 我不确定如何构建它。 我用谷歌搜索并浏览了一些书,但没有找到太多帮助我解决如何实施解决方案。 import javax.swing.JOptionPane; public class question2 { static int count = 0; static int [] dictionary; public static void main(String[] args) { int answer; int num = Integer.parseInt(javax.swing.JOptionPane.showInputDialog(“Enter n:”)); javax.swing.JOptionPane.showMessageDialog(null, “About to calculate fibonacci(” + num + “)”); //giving the array “n” elements dictionary= new int [num]; if (dictionary.length>=0) […]