您好,登錄后才能下訂單哦!
本文實例為大家分享了java遞歸之斐波那契數列的具體代碼,供大家參考,具體內容如下
第一種、普通寫法
public class Demo { public static void main(String[] args) { int num1 = 1; int num2 = 1; int num3 = 0; System.out.println(num1); System.out.println(num2); for (int i = 1; i < 10; i++) { num3 = num1 + num2; num1 = num2; num2 = num3; System.out.println(num3); } } }
第二種、數組形式遞歸的寫法
public class DIGUI1 { public static void main(String[] args) { int []arr=new int[20]; arr[1]=1; arr[2]=1; System.out.print(" "+arr[1]); System.out.print(" "+arr[2]); for(int i=3;i<20;i++){ arr[i]=arr[i-1]+arr[i-2]; System.out.print(" "+arr[i]); } } }
第三種、遞歸形式的寫法
public class Demo { public static int f(int n) throws Exception { if(n==0){ throw new Exception("參數錯誤!"); } if (n == 1 || n == 2) { return 1; } else { return f(n-1)+f(n-2);//自己調用自己 } } public static void main(String[] args) throws Exception { for (int i = 1; i <=10; i++) { System.out.print(f(i)+" "); } } }
用遞歸最大的問題就是效率問題了,但是有的程序必須用遞歸寫才可以寫出來。例如著名的漢若塔問題,如果有誰可以用其他方式寫出來我服。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。