반응형
https://codeup.kr/problem.php?id=2601&rid=0
문제설명
---
피보나치 수열이란 앞의 두 수를 더하여 나오는 수열이다.
첫 번째 수와 두 번째 수는 모두 1이고, 세 번째 수부터는 이전의 두 수를 더하여 나타낸다. 피보나치 수열을 나열해 보면 다음과 같다.
1, 1, 2, 3, 5, 8, 13 …
자연수 N을 입력받아 N번째 피보나치 수를 출력하는 프로그램을 작성하시오.
풀이
---
배열을 사용해서 각 단계에 맞는 값들을 저장해서 이용
import java.util.Scanner;
public class Main {
static void fn(int n, int[] arr){
if(n==arr.length) return;
if(n==1 || n==2) arr[n] = 1;
else{
arr[n] = arr[n-1] + arr[n-2];
}
n+=1;
fn(n, arr);
}
public static void main(String[] arg) throws Exception{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n+1];
fn(1, arr);
System.out.println(arr[n]);
}
}
https://github.com/dopal2/CodeUp/blob/main/src/Main.java_2601
반응형
'알고리즘 > 코드업' 카테고리의 다른 글
[#CodeUp] 1173 : 30분전 (0) | 2024.03.03 |
---|---|
[#CodeUp] 1166 : 윤년 판별 (0) | 2024.03.03 |
[#CodeUp] 1915 : (재귀함수) 피보나치 수열 (0) | 2024.02.23 |
[#CodeUp] 1912 : (재귀함수) 팩토리얼 계산 (0) | 2024.02.23 |
[#CodeUp] 1805 : 입체기동장치 생산공장 (0) | 2024.02.23 |
댓글