我一直在玩一些代碼今晚,我編碼了一個非常簡單的算法,我認爲這是斐波那契遞歸和大數字的一個非常好的解決方案。我想知道你們想想看,如果你有與我們做的更好,共享任何貢獻......看看代碼波紋管用於大數字的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