https://www.acmicpc.net/problem/15624
문제
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.
이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.
n=17일때 까지 피보나치 수를 써보면 다음과 같다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597
n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.
문제 코드
문제 풀이
문제에서 함수의 N값은 1,000,000 보다 작거나 같다고 했기 때문에 범위에 맞는 함수 arr함수를 선언하고 초항과 둘째항은 0,1 로 고정이기 때문에 2항의 값을 초기화해줌. (main함수 안에서 선언하면 런타임에러가 나기 때문에 main함수 밖에서 초기화해줌.) 그리고 main함수 안에서 N을 입력받고 문제에서 피보나치 수를 1,000,000,007로 나눈 나머지를 출력하라는 조건이 있기 때문에 피보나치 점화식에다가 %1,000,000,007를 추가해줌. 최종 점화식을 for문 안에 넣어 원하는 값을 얻은 후 출력함.
'Koala - 10기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python] 9184번 신나는 함수 실행 (0) | 2023.03.19 |
---|---|
[BAEKJOON/Python] 27730 견우와 직녀 (0) | 2023.03.19 |
[백준/Python] 9465 스티커 (0) | 2023.03.19 |
[백준/Python]15624번: 피보나치 수 7 (0) | 2023.03.19 |
[백준/python] 11055 가장 긴 증가하는 수열 (0) | 2023.03.19 |