標題:
遞迴函式 (二) - 費氏數列
[打印本頁]
作者:
陳品肇
時間:
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...
試完成一程式,能推算費氏數列至指定項次:
import java.util.Scanner;
public class Ch50 {
static int fai(int n)
{
if(n<2)
return n;
else
return fai(n-2)+fai(n-1);
}
/*
值: 0 1 1 2 3 5 8
項: 0 1 2 3 4 5 6
fai(5)
=fai(3)+fai(4)
=fai(1)+fai(2)+fai(2)+fai(3)
=1+fai(0)+fai(1)+fai(0)+fai(1)+fai(1)+fai(2)
=1+0+1+0+1+1+fai(0)+fai(1)
=1+0+1+0+1+1+0+1
=5
*/
public static void main(String[] args)
{
int n;
Scanner s=new Scanner(System.in);
System.out.print("請問要推算費氏數列到第幾項次? ");
n=s.nextInt();
for(int i=0; i<=n; i++)
{
System.out.print(fai(i)+" ");
}
}
}
複製代碼
作者:
蔣宗儒
時間:
2019-7-5 11:59
import java.util.Scanner;
public class junior {
static int f(int a )
{
if (a<2)
return a ;
else
return f(a-2)+f(a-1);
}
public static void main(String args[]) {
Scanner c = new Scanner(System.in);
int a = c.nextInt();
for (int i = 1 ; i <=a ; i+=1)
System.out.print(f(i)+" ");
}
}
複製代碼
作者:
張閎鈞
時間:
2019-7-5 12:01
package text369;
import java.util.Scanner;
public class text45 {
static int io(int n)
{
if(n<2)
return n;
else
return io(n-2)+io(n-1);
}
public static void main(String[] args) {
System.out.print("請問要推算費氏數列到第幾項次?");
Scanner s=new Scanner(System.in);
int a=s.nextInt();
System.out.println(io(a));
for(int i=1;i<=a;i++)
{
System.out.print(io(i)+"\t");
}
}
}
複製代碼
作者:
黃恆嘉
時間:
2019-7-5 12:03
import java.util.Scanner;
public class Ch09 {
static int fai(int a) {
if (a < 2) {
return (1);
} else {
return fai(a - 1) + fai(a - 2);
}
}
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
System.out.print("費氏數列至第幾項次?");
int a = scn.nextInt();
for (int i = 1; i < a; i += 1) {
System.out.println(fai(i));
}
}
}
複製代碼
作者:
林侑成
時間:
2019-7-5 12:03
package asdf;
import java.util.Scanner;
public class QWER
{
static int t(int x)
{
if(x<2)
{
return x;
}
else
{
return t(x-2)+t(x-1);
}
}
public static void main(String[] args)
{
Scanner s=new Scanner(System.in);
int n;
System.out.print("請問要推算費氏數列到第幾項次: ");
n=s.nextInt();
for(int i=1;i<=n;i++)
{
System.out.print(t(i)+"\t");
}
}
}
複製代碼
作者:
潘承渙
時間:
2019-7-5 12:18
import java.util.Scanner;
public class Ch11 {
static int fai(int n){
if(n<2){
return n;
}else{
return fai(n-2)+ fai(n-1);
}
}
public static void main(String[] args){
int n;
Scanner s=new Scanner(System.in);
System.out.print("請問要輸入道第幾次項?");
n=s.nextInt();
for(int i=0;i<=n;i++)
{
System.out.print(fai(i)+" ");
}
}
}
複製代碼
作者:
黃安立
時間:
2019-7-5 13:07
import java.util.Scanner;
public class Ch09 {
static int fai(int a) {
if (a< 2) {
return (1);
} else {
return fai(a - 1) + fai(a - 2);
}
}
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
System.out.print("費氏數列至第幾項次?");
int a = scn.nextInt();
for (int i = 1; i < a; i += 1) {
System.out.println(fai(i));
}
}
}
複製代碼
作者:
湯東緯
時間:
2019-7-5 13:13
import java.util.*;
public class Ch01 {
static int fai(int n){
if(n<2){
return n;
}
else{
return fai(n-2)+fai(n-1);
}
}
public static void main(String[] args)
{
int n;
Scanner scn=new Scanner(System.in);
System.out.println("請問要推算費是數列到第幾位");
n=scn.nextInt();
for(int i=0;i<=n;i++){
System.out.println(fai(i)+" ");
}
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2