標題:
遞迴函式 - 費式數列
[打印本頁]
作者:
tonyh
時間:
2013-1-12 16:33
標題:
遞迴函式 - 費式數列
本帖最後由 tonyh 於 2013-1-12 17:02 編輯
費式數列規則如下:
第n項 = 第 n-1 項 + 第 n-2 項
即整個費式數列為:
1 1 2 3 5 8 13 21 34 55 89 144 233 377...
試設計一程式, 使能推算費式數列的第N項為?
import java.util.Scanner;
public class ch54
{
public static void main(String args[])
{
int x;
Scanner s=new Scanner(System.in);
System.out.print("請問想推算費式數列的第幾個項次? ");
x=s.nextInt();
System.out.println("費式數列的第"+x+"項, 值為: "+fib(x));
}
public static int fib(int n)
{
if(n<=1) //邊介條件,使遞迴函式不會無窮的執行下去
return n;
else
return fib(n-1)+fib(n-2); //遞迴呼叫, 使函式漸漸往邊界條件移動
}
}
/*
fib(5)=fib(4)+fib(3)
=fib(3)+fib(2)+fib(2)+fib(1)
=fib(2)+fib(1)+fib(1)+fib(0)+fib(1)+fib(0)+1
=fib(1)+fib(0)+1+1+1+1
=1+1+1+1+1
=5
*/
複製代碼
作者:
t3742238
時間:
2013-1-12 17:01
import java.util.Scanner;
public class.ch54
{
public static void main(Sting args[])
{
int x;
Scanner s=new Scanner(System.in);
System.out.print("請問想推算的費式數列的是第幾項次");
x=s.nextInt();
System.out.println("費式數列的第"+x+"項,值為:"+fib(x));
}public static int fib(int n)
{
if(n<=1)
return n;
else
return fib(n-1)+fib(n-2);
}
}
複製代碼
作者:
劉漢文
時間:
2013-1-12 17:02
import java.util.Scanner;
public class ch54
{
public static void main(String args[])
{
int x;
Scanner s=new Scanner(System.in);
System.out.print("請問想推算費式數列的第幾個項次? ");
x=s.nextInt();
System.out.println("費式數列的第"+x+"項, 值為: "+fib(x));
}
public static int fib(int n)
{
if(n<=1)
return n;
else
return fib(n-1)+fib(n-2);
}
}
複製代碼
作者:
t2364705
時間:
2013-1-12 17:02
import java.util.Scanner;
public class ch54
{
public static void main(String args[])
{
int x;
Scanner s=new Scanner(System.in);
System.out.print("請問想推算費式數列的第幾個項次? ");
x=s.nextInt();
System.out.println("費式數列的第"+x+"項, 值為: "+fib(x));
}
public static int fib(int n)
{
if(n<=1)
return n;
else
return fib(n-1)+fib(n-2);
}
}
複製代碼
作者:
尤泓鈞
時間:
2013-1-12 17:04
import java.util.Scanner;
public class.ch54
{
public static void main(Sting args[])
{
int x;
Scanner s=new Scanner(System.in);
System.out.print("請問想推算的費式數列的是第幾項次");
x=s.nextInt();
System.out.println("費式數列的第"+x+"項,值為:"+fib(x));
}public static int fib(int n)
{
if(n<=1)
return n;
else
return fib(n-1)+fib(n-2);
}
}
複製代碼
作者:
蔡昀佑
時間:
2013-1-12 17:09
import java.util.Scanner;
public class ch54
{
public static void main(String args[])
{
int x;
Scanner s=new Scanner(System.in);
System.out.print("請問想推算費式數列的第幾個項次? ");
x=s.nextInt();
System.out.println("費式數列的第"+x+"項, 值為: "+fib(x));
}
public static int fib(int n)
{
if(n<=1) //邊介條件,使遞迴函式不會無窮的執行下去
return n;
else
return fib(n-1)+fib(n-2); //遞迴呼叫, 使函式漸漸往邊界條件移動
}
}
/*
fib(5)=fib(4)+fib(3)
=fib(3)+fib(2)+fib(2)+fib(1)
=fib(2)+fib(1)+fib(1)+fib(0)+fib(1)+fib(0)+1
=fib(1)+fib(0)+1+1+1+1
=1+1+1+1+1
=5
*/
複製代碼
作者:
蔡昀佑
時間:
2013-1-12 17:09
import java.util.Scanner;
public class ch54
{
public static void main(String args[])
{
int x;
Scanner s=new Scanner(System.in);
System.out.print("請問想推算費式數列的第幾個項次? ");
x=s.nextInt();
System.out.println("費式數列的第"+x+"項, 值為: "+fib(x));
}
public static int fib(int n)
{
if(n<=1) //邊介條件,使遞迴函式不會無窮的執行下去
return n;
else
return fib(n-1)+fib(n-2); //遞迴呼叫, 使函式漸漸往邊界條件移動
}
}
複製代碼
作者:
黃博鴻
時間:
2013-1-12 17:15
import java.util.Scanner;
public class ch54
{
public static void main(String args[])
{
int x;
Scanner ss=new Scanner(System.in);
System.out.println("請問你要推算費氏數列的哪一個項次?");
x=ss.nextInt();
System.out.println("費氏數列的"+x+"項次的值為"+nr(x));
}
public static int nr (int h)
{
if(h<=1)
return h;
else
return nr(h-1)+nr(h-2);
}
}
複製代碼
作者:
粘靖瑜
時間:
2013-1-19 11:01
import java,until.Scanner;
public class ch54
{
public static void main(String args[])
{
int x;
Scanner s=new Sanner(System.in);
System.out.print("請問要推算費氏數列第幾個項式? ");
x=s.nextInt();
System.out.println("費氏數列的第""個項式值為: "+fib(x));
}
public static int fid(int n)
{
if(n<=1)
return n;
else
return fib(n-1)+fib(n-2);
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2