Board logo

標題: 遞迴函式 (二) - 費氏數列 [打印本頁]

作者: tonyh    時間: 2021-1-27 13:04     標題: 遞迴函式 (二) - 費氏數列

費氏數列 - 維基百科

費氏數列規則如下:
第n項 = 第 n-1 項  + 第 n-2 項

即整個費式數列為:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377...

試完成一程式,能推算費氏數列至指定項次:

  1. import java.util.Scanner;

  2. public class Ch50 {       
  3.    
  4.         static int fai(int n)
  5.         {
  6.                 if(n<2)
  7.                         return n;
  8.                 else
  9.                         return fai(n-2)+fai(n-1);
  10.         }
  11.         /*
  12.             
  13.             值:  0 1 1 2 3 5 8
  14.             項:  0 1 2 3 4 5 6
  15.             
  16.            fai(5)
  17.            =fai(3)+fai(4)
  18.            =fai(1)+fai(2)+fai(2)+fai(3)
  19.            =1+fai(0)+fai(1)+fai(0)+fai(1)+fai(1)+fai(2)
  20.            =1+0+1+0+1+1+fai(0)+fai(1)   
  21.            =1+0+1+0+1+1+0+1     
  22.            =5
  23.           
  24.         */
  25.         public static void main(String[] args)
  26.         {
  27.                 int n;
  28.                 Scanner s=new Scanner(System.in);
  29.                 System.out.print("請問要推算費氏數列到第幾項次? ");
  30.                 n=s.nextInt();
  31.                 for(int i=0; i<=n; i++)
  32.                 {
  33.                         System.out.print(fai(i)+" ");
  34.                 }
  35.         }
  36. }
複製代碼

作者: 劉凱閔    時間: 2021-1-27 13:21

  1. import java.util.Scanner;
  2. public class Ch04 {
  3.         static int fai(int n)
  4.         {
  5.                  if(n<2)
  6.                            return n;
  7.                     else
  8.                          return fai(n-2)+fai(n-1);
  9.         }
  10.         public static void main(String[] args)
  11.         {
  12.                 int n;
  13.                 Scanner s=new Scanner(System.in);
  14.                 System.out.print("請問要推算費式數列到第幾項次?");
  15.         n=s.nextInt();
  16.         for(int i=0; i<=n; i++)
  17.         {
  18.                 System.out.print(fai(i)+" ");
  19.         }
  20.         }
  21. }
複製代碼

作者: 吳聲寬    時間: 2021-1-27 13:21

本帖最後由 吳聲寬 於 2021-1-27 13:23 編輯
  1. import java.util.Scanner;
  2. public class Ch10
  3. {
  4.         static int f(int n)
  5.         {
  6.                 if(n<2)
  7.                         return n;
  8.                 else
  9.                         return f(n-2)+f(n-1);
  10.         }
  11.         public static void main(String[] args)
  12.         {
  13.                 Scanner s=new Scanner(System.in);
  14.                 int a;
  15.                 System.out.print("Enter your amout: ");
  16.                 a=s.nextInt();
  17.                 for(int i=0;i<=a;i++)
  18.                         System.out.print(f(i)+" ");
  19.         }
  20. }
複製代碼

作者: 李柏穎    時間: 2021-1-27 13:23

  1. import java.util.Scanner;
  2. public class Ch01
  3. {      
  4.         static int f(int n)
  5.         {
  6.                 if(n<2)
  7.                     return n;
  8.                 else
  9.                     return f(n-2)+f(n-1);
  10.         }
  11.         public static void main(String[] args)
  12.         {
  13.                 int a;
  14.                 Scanner s=new Scanner(System.in);
  15.             System.out.print("請問要推算費氏數列到第幾項次: ");
  16.             a=s.nextInt();
  17.             for(int i=0; i<=a; i++)
  18.                     System.out.print(f(i)+" ");
  19.         }
  20. }   
複製代碼

作者: 卓炘暘    時間: 2021-1-27 13:24

  1. import java.util.Scanner;

  2. public class Ch01

  3. {

  4.         static int fai(int n)
  5.         {
  6.                 if(n<2)
  7.                         return n;
  8.                 else
  9.                         return fai(n-2)+fai(n-1);

  10.         }
  11.         public static void main(String[] args)
  12.         {
  13.                 int n;
  14.                 Scanner s=new Scanner(System.in);
  15.                 System.out.print("請問要推算費是數列到第幾項呢? ");
  16.                 n=s.nextInt();
  17.                 for(int i=0; i<=n; i++)
  18.                 {
  19.                         System.out.println(fai(i)+" ");
  20.                 }

  21.         }

  22. }
複製代碼

作者: 楊小萱    時間: 2021-1-27 13:24

  1. import java.util.Scanner;
  2. public class Ch05
  3. {
  4.         static int fai(int n)
  5.         {
  6.                 if(n<2)
  7.                         return n;       
  8.                 else
  9.                         return fai(n-1)+fai(n-2);
  10.         }
  11.         public static void main(String[] args)
  12.         {
  13.                 int n;
  14.                 Scanner s=new Scanner(System.in);
  15.                 System.out.print("請問要推算費氏數列到第幾項次?");
  16.                 n=s.nextInt();
  17.                 for(int i=0;i<=n;i++)
  18.                 {
  19.                         System.out.print(fai(i)+" ");
  20.                 }       
  21.         }
  22. }
複製代碼

作者: 王睿宇    時間: 2021-1-27 13:24

  1. import java.util.Scanner;
  2. public class AS02 {
  3.        
  4.         static int f(int x){
  5.                 if(x<=1)
  6.                         return x;
  7.                 else
  8.                         return f(x-1)+f(x-2);
  9.         }

  10.         public static void main(String[] args) {
  11.                 Scanner s=new Scanner(System.in);
  12.                 System.out.print("要求費氏數列的第幾項: ");
  13.                 int n=s.nextInt();
  14.                 for(int i=0; i<=n; i+=1)
  15.                         System.out.print(f(i)+" ");

  16.         }

  17. }
複製代碼

作者: 藍健洲    時間: 2021-1-27 13:25

  1. import java.util.Scanner;
  2. public class Ch01 {
  3.         static int f(int n)
  4.         {
  5.                 if(n<2)
  6.                         return n;
  7.                 else
  8.                         return f(n-2)+f(n-1);
  9.         }
  10.         public static void main(String[]args)
  11.         {
  12.                 int n;
  13.                 Scanner s=new Scanner(System.in);
  14.                 System.out.print("請問要推算費氏數列到第幾項次? ");
  15.                 n=s.nextInt();
  16.                 for(int i=0;i<=n;i++)
  17.                 {
  18.                         System.out.print(f(i)+" ");
  19.                 }
  20.         }




  21. }
複製代碼

作者: 紀承典    時間: 2021-1-27 13:25

  1. import java.util.Scanner;


  2. public class Ch02 {
  3.             static int fai(int n)
  4.             {
  5.                     if(n<2)
  6.                                return n;
  7.                     else
  8.                             return fai(n-2)+fai(n-1);
  9.             }

  10.             public static void main(String[] args)
  11.             {
  12.               int n;
  13.               Scanner s=new Scanner(System.in);
  14.               System.out.print("請問要推算費氏數列到第幾項次? ");
  15.               n=s.nextInt();
  16.               for(int i=0; i<=n; i++)
  17.               {
  18.                       System.out.print(fai(i)+" ");
  19.               }
  20.         }

  21. }
複製代碼

作者: 楊澤全    時間: 2021-1-27 13:26

  1. import java.util.Scanner;
  2. public class Ch06
  3. {
  4.         static int f(int i)
  5.         {
  6.                 if(i<2)
  7.                         return i;               
  8.                 else
  9.                         return
  10.                                         f(i-1)+f(i-2);
  11.         }
  12.         public static void main(String[] args)
  13.         {
  14.                 int n;
  15.                 Scanner a=new Scanner(System.in);
  16.                 System.out.print("請問要推算費是數列到第幾次?");
  17.                 n=a.nextInt();
  18.                 for (int i=0;i<=n;i++)
  19.                 {
  20.                         System.out.print(f(i)+" ");               
  21.                 }
  22.         }
  23. }
複製代碼

作者: 王博裕    時間: 2021-1-27 13:26

  1. import java.util.Scanner;
  2. public class Ch02 {
  3.         static int fai(int n)
  4.         {
  5.                 if(n<2)
  6.                         return n;
  7.                 else
  8.                         return fai(n-2)+fai(n-1);
  9.         }
  10.         public static void main(String[] args) {
  11.                 int n;
  12.                 Scanner s=new Scanner(System.in);
  13.                 System.out.print("請問要推算費是數列到第幾項?");
  14.                 n=s.nextInt();
  15.                 for(int i=0;i<=n;i++){
  16.                 System.out.print(fai(i)+" ");       
  17.                 }
  18.                
  19.         }

  20. }
複製代碼

作者: 李柏穎    時間: 2021-1-27 13:41

  1. import java.util.Scanner;
  2. public class Ch01
  3. {      
  4.         static int f(int n)
  5.         {
  6.                 if(n==1)
  7.                         return 1;
  8.             else
  9.                 return n*f(n-1);
  10.         }
  11.         public static void main(String[] args)
  12.         {
  13.                 int a;
  14.                 Scanner s=new Scanner(System.in);
  15.             System.out.print("請輸入階層運算的值: ");
  16.             a=s.nextInt();
  17.             System.out.print(f(a));
  18.         }
  19. }   
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2