Board logo

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

作者: 陳品肇    時間: 2019-7-5 11:36     標題: 遞迴函式 (二) - 費氏數列

費氏數列 - 維基百科

費氏數列規則如下:
第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-7-5 11:59

  1. import java.util.Scanner;

  2. public class junior {

  3.         static int f(int a )
  4.         {   
  5.                 if (a<2)
  6.                         return a ;
  7.                 else
  8.                         return f(a-2)+f(a-1);       
  9.         }

  10.         public static void main(String args[]) {
  11.                 Scanner c = new Scanner(System.in);
  12.                 int a = c.nextInt();
  13.                 for (int i = 1 ; i <=a ; i+=1)
  14.                 System.out.print(f(i)+" ");
  15.         }
  16. }
複製代碼

作者: 張閎鈞    時間: 2019-7-5 12:01

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

  24. }
複製代碼

作者: 黃恆嘉    時間: 2019-7-5 12:03

  1. import java.util.Scanner;

  2. public class Ch09 {

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

  9.         }

  10.         public static void main(String[] args) {
  11.                 Scanner scn = new Scanner(System.in);
  12.                 System.out.print("費氏數列至第幾項次?");
  13.                 int a = scn.nextInt();
  14.                 for (int i = 1; i < a; i += 1) {
  15.                         System.out.println(fai(i));
  16.                 }

  17.         }
  18. }
複製代碼

作者: 林侑成    時間: 2019-7-5 12:03

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

作者: 潘承渙    時間: 2019-7-5 12:18

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

作者: 黃安立    時間: 2019-7-5 13:07

  1. import java.util.Scanner;

  2. public class Ch09 {

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

  9.         }

  10.         public static void main(String[] args) {
  11.                 Scanner scn = new Scanner(System.in);
  12.                 System.out.print("費氏數列至第幾項次?");
  13.                 int a = scn.nextInt();
  14.                 for (int i = 1; i < a; i += 1) {
  15.                         System.out.println(fai(i));
  16.                 }

  17.         }
  18. }       
複製代碼

作者: 湯東緯    時間: 2019-7-5 13:13

  1. import java.util.*;

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





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