C/Java - フィボナッチ数列

この C と Java のチュートリアルでは、最初の N 個のフィボナッチ数を数えて表示する方法を学習します。

フィボナッチ数列は次のように定義されます:

  n ≥ 1  U1=U2=1
  and
  Un = A-1+Un-2  すべてに n ≥ 2


C/Java - フィボナッチ数列フラクタル
フィボナッチワードフラクタル

1- C

以下のプログラムは、フィボナッチ数列の最初の20個の数字を反復法で出力します。各 term は、シーケンス内の前の 2 つの用語を加算することによって形成されます。用語 1 と 1.
#include
#include

main() {
int n1 = 1, n2 = 1, n3;
printf("%d %d ", n1 ,n2 );

for (int i = 0; i < 18; i++) { //次の18項をループ
n3= n2 + n1; //次の項は前の2つの項の合計です
printf("%d ", n3);
n1 = n2;最初の前は 2 番目 previous
n2 = n3;そして、現在の番号は previous
}
printf("\n");
system("pause");
}
出力:

C++ - 反復法によるフィボナッチ数列の最初の 20 個の数値

2- Javaのフィボナッチ:


我々は、整数nを入力として、出力としてシーケンスのランクnの項として、再帰的処理を行うことを選択しました。再帰の 2 つのケースを次に示します:
  • n が 1 以下の場合、n は 0 または 1 の 2 つの値を取ります。fib(0)=0 および fib(1)=1.
  • それ以外の場合、繰り返しは n から始まり、2 番目の項に減少します。
インポートjava.io.InputStreamReader;
import java.util.Scanner;

/*
* 最初のN個のフィボナッチ数を数えて表示します。
*/
public class Fibonacci {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
int N = sc.nextInt();

//最初のNフィボナッチ数を表示
for(int i = 1 ; i <= N ; i++)//n=1
System.out.println(i + ": " + fib(i));
}

private static int fib(int n) {
if (n <= 1) return n;
else return fib(n-1) + fib(n-2);
}
}
出力:
20
fib(1)= : 1
fib(2)= : 1
fib(3)= : 2
fib(4)= : 3
fib(5)= : 5
fib(6)= : 8
fib(7)= : 13
fib(8)= : 21
fib(9)= : 34
fib(10)= : 55
fib(11)= : 89
fib(12)= : 144
fib(13)= : 233
fib(14)= : 377
fib(15)= : 610
fib(16)= : 987
fib(17)= : 1597
fib(18)= : 2584
fib(19)= : 4181
fib(20)=: 6765