package k20231204;
import java.util.Arrays;
import java.util.Scanner;
public class FibonacciTest2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("피보나치 수열의 합계를 계산할 항을 입력하세요: ");
int n = scanner.nextInt();
// 입력받은 피보나치 수열의 합계를 계산할 항의 개수만큼 배열을 만든다.
int[] fibo = new int[n];
// System.out.println(Arrays.toString(fibo));
// System.out.println("배열의 크기: " + fibo.length);
// 배열의 0번째, 1번째 인덱스 요소를 각각 1로 초기화 한다.
fibo[0] = 1;
fibo[1] = 1;
int y = 2;
// 피보나치 수열의 각 항 값으로 배열을 채우면서 합계를 계산한다
// k = 3 일 때, fibo[2] = fibo[0] + fibo[1];
// k = 4 일 때, fibo[3] = fibo[1] + fibo[2];
// k = n 일 때, fibo[n-1] = fibo[n-3] + fibo[n-2];
for (int k = 3; k <= n; k++) {
fibo[k-1] = fibo[k-3] + fibo[k-2]; // 피보나치 수열의 n-2번째(a) 항과 n-1번째(b) 항을 더해서 n번째(c) 항 값을 계산한다.
y += fibo[k-1];
}
// System.out.println(Arrays.toString(fibo) + ", " + y);
// 1 + 1 + 2 + 3 + 5 + 8 = 20
// => fibo[0] + fibo[1] + fibo[2] =y
for (int i = 0; i<fibo.length-1; i++) {
System.out.print(fibo[i] + " + ");
}
System.out.println(fibo[fibo.length-1] + " = " + y);
for (int i = 0; i<fibo.length; i++) {
if (i>0) {
System.out.print(" + ");
}
System.out.print(fibo[i]);
}
System.out.println(" = " + y);
}
}

'java&eclipse 코딩 알고리즘 > 20231204' 카테고리의 다른 글
| RankTest2 (0) | 2023.12.13 |
|---|---|
| RankTest (0) | 2023.12.13 |
| PowerBallTest (0) | 2023.12.13 |
| LottoTest2 (0) | 2023.12.13 |
| FibonacciTest (0) | 2023.12.13 |