我一直在玩一些代码今晚,我编码了一个非常简单的算法,我认为这是斐波那契递归和大数字的一个非常好的解决方案。我想知道你们想想看,如果你有与我们做的更好,共享任何贡献......看看代码波纹管用于大数字的Java递归斐波纳契实现
public class RecursiveFibonacci {
public void calculateFib(long first, long next, long counter, int n) {
if(counter == n) {
return;
}
counter++;
if(first == 0 && next == 0) {
System.out.println("0");
calculateFib(0, 1, counter, n);
return;
}
if(first == 0 && next == 1) {
System.out.println("1");
calculateFib(1, 0, counter, n);
return;
}
if(first == 1 && next == 0) {
System.out.println("1");
calculateFib(1, 1, counter, n);
return;
}
long result = first + next;
if(result > 1) {
System.out.println(result);
calculateFib(next, result, counter, n);
}
}
public RecursiveFibonacci() {
calculateFib(0, 0, 0, 9999999);
}
public static void main(String[] args) {
new RecursiveFibonacci();
}
}
在[codereview](http://codereview.stackexchange.com/)可能应该询问这个问题 – Pshemo 2013-02-12 01:12:40
您关心的程序是否有特定方面?或者你只是想让别人看看它?如果是后者,最好在codereview.stackexchange.com上发布 – 2013-02-12 01:12:52
只是不使用递归 - 它是一种计算斐波那契数的可怕方法,因为您必须多次重复计算值(而不是记忆部分解决方案)。在这里看到图像:http://en.algoritmy.net/article/45658/Fibonacci-series,它可能帮助你更好地掌握递归斐波那契的问题。 – malejpavouk 2013-02-15 10:26:34