Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래머스JAVA
- springboot
- 카카오코딩연습
- 완전탐색
- 프로그래머스
- 스프링부트와 AWS로혼자구현하는웹서비스
- 백준팩토리얼자바
- 백준피보나치수
- intelliJ단축키
- 백준하노이탑
- 프로그래머스N으로표현
- C++
- 프로그래머스해쉬
- 프로그래머스자바
- 백준
- 알고리즘공부
- 전화번호목록자바
- dfs
- 테스트클래스생성단축키
- 코딩연습
- 인텔리제이테스트클래스생성
- 프로그래머스완주하지못한선수
- java
- 백준팩토리얼
- 자바
- 인텔리제이단축키
- 프로그래머스전화번호목록
- 백준벌집
- 백준피보나치
- 알고리즘
Archives
- Today
- Total
말랑말랑
[백준] 10870번 피보나치 수 본문
[21-04-20]
문제
10870번: 피보나치 수 5
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
분석
이 문제 또한 피보나치 자체의 개념을 알면 금방 풀 수 있는 문제다. (문제에도 나와있음)
N번째 숫자는 N-1번의 숫자와 N-2번의 숫자를 더한 값이다.
ex) 7번째 수 : 13 = 5(5번째 수) + 8(6번째 수)
피보나치 수열 > 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597
이때 n-1의 수를 구하려고 한다면 n-1의 숫자 또한 ( n-1)-1번째 수와 (n-1)-2번째 수를 더한 값이라는 것을 알 수 있다.
또한 입력 범위에 0이 포함되어 있고, 0번째 피보나치 수는 n-1 + n-2의 피보나치 수로 구할수가 없다.(기저사례)
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(Fibonacci(n));
}
public static int Fibonacci(int n) {
if(n==0) {
return 0;
} else if(n<=2) {
return 1;
}
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
결과
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11729번 하노이탑 (0) | 2021.04.21 |
---|---|
[백준] 10872번 팩토리얼 (0) | 2021.04.21 |
[백준] 2292번 벌집 (0) | 2021.03.06 |
[백준] 1712번 손익분기점 구하기 (0) | 2021.03.06 |
Comments