Board logo

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

作者: tonyh    時間: 2019-8-7 11:37     標題: 遞迴函式 (二) - 費氏數列

費氏數列 - 維基百科

費氏數列規則如下:
第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. }
複製代碼

作者: 張書涵    時間: 2019-8-7 13:24

  1. import java.util.Scanner;

  2. public class Ch01 {
  3.     static int f(int a)
  4.     {
  5.             if(a==0)
  6.                     return 0;
  7.             if(a==1)
  8.                     return 1;
  9.             else
  10.                     return f(a-2)+f(a-1);
  11.     }
  12.         public static void main(String[] args) {
  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(f(i)+"  ");
  20.                 }
  21.         }
  22. }
複製代碼

作者: 張郁庭    時間: 2019-8-7 13:26

  1. import java.util.Scanner;

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

  19. }
複製代碼

作者: 潘憶承    時間: 2019-8-7 13:29

本帖最後由 潘憶承 於 2019-8-7 13:31 編輯
  1. import java.util.Scanner;

  2. public class Ch01{        
  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.println("請問要推算費氏數列到第幾項次?");
  15.                 n=s.nextInt();
  16.                 for(int i=0;i<=n;i++)
  17.                 {
  18.                         System.out.println(fai(i)+" ");
  19.                 }   
  20.         }
  21. }
複製代碼

作者: 黃永恩    時間: 2019-8-7 13:30

  1. import java.util.Scanner;


  2. public class ch02 {
  3.        
  4.         static int f(int a){
  5.                 if(a<2)
  6.                         return a;
  7.                 else
  8.                         return f(a-1)+f(a-2);
  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(f(i)+" ");

  17.         }
  18. }
複製代碼

作者: 許育慈    時間: 2019-8-7 13:30

本帖最後由 許育慈 於 2019-8-7 13:31 編輯
  1. import java.util.Scanner;
  2. public class Ch01 {
  3.         static int f(int a){
  4.                 if(a<=1)
  5.                         return a;
  6.                 else
  7.                         return f(a-1)+f(a-2);
  8.         }
  9.         public static void main(String[] args) {
  10.                 Scanner s=new Scanner(System.in);
  11.                 System.out.print("請問要推算費氏數列到第幾項次?");
  12.                 int w=s.nextInt();
  13.                 for(int i=0;i<=w;i++)
  14.                         System.out.print(f(i)+" ");
  15.         }
  16. }
複製代碼

作者: 莊鈞程    時間: 2019-8-7 13:30

  1. import java.util.Scanner;
  2. import java.util.Arrays;
  3. public class Ch50 {
  4.         static int fib(int n){
  5.                 if(n<2)
  6.                         return n;
  7.                 else
  8.                         return fib(n-1)+fib(n-2);
  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(fib(i)+" ");
  17.     }
  18. }
複製代碼

作者: 許育禎    時間: 2019-8-7 13:30

  1. import java.util.Scanner;
  2. public class CH01 {
  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.             System.out.print(fai(i)+" ");
  18.     }
  19. }
複製代碼

作者: 李沛儒    時間: 2019-8-7 13:30

  1. import java.util.Scanner;

  2. public class Ch000
  3. {
  4.         static int  fai(int a)
  5.     {
  6.             if( a<2 )
  7.                     return a;
  8.             else
  9.                     return  fai(a-2)+fai(a-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. }
複製代碼

作者: 葉俠愷    時間: 2019-8-7 13:30

  1. import java.util.Scanner;


  2. public class Ch11 {
  3.        
  4.         static int  f(int b)
  5.         {
  6.                 if(b<2)
  7.                 {
  8.                return b;
  9.                
  10.                 }else
  11.                 {
  12.                         return f(b-1)+f(b-2);
  13.                                        
  14.                 }
  15.         }

  16.         public static void main(String[] args) {
  17.                
  18.                 Scanner s=new Scanner(System.in);
  19.                 int b;
  20.                 System.out.println("幾次費氏數列");
  21.                 b=s.nextInt();
  22.                 System.out.println(b+"次費氏數列為"+f(b));
  23.                
  24.                
  25.       

  26.         }

  27. }
複製代碼

作者: 張嘉栩    時間: 2019-8-7 13:31

  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.print(fai(i)+" ");
  20.                     }
  21.             }
  22.     }
複製代碼

作者: 蔡明蓉    時間: 2019-8-7 13:31

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

作者: 鄭宇崴    時間: 2019-8-7 13:33

  1. import java.util.Scanner;
  2. public class Ch51{
  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. }
複製代碼

作者: 余奕廷    時間: 2019-8-7 13:33

  1. import java.util.Scanner;

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

  17. }
複製代碼

作者: 曾暘竣    時間: 2019-8-7 13:33

  1. public class Ch10 {        
  2.    
  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.         
  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. }
複製代碼

作者: 黃芊嬡    時間: 2019-8-7 13:36

  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)+(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.print(fai(i)+" ");
  20.                 }
  21.         }
  22. }
複製代碼

作者: 余映均    時間: 2019-8-7 13:36

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

作者: 何育翔    時間: 2019-8-7 13:38

  1. import java.util.Scanner;
  2. public class Ch01{

  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. }
複製代碼





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