[BOJ/백준-Python]10870번 - 피보나치 수 5

10870번 - 피보나치 수 5

문제

피보나치 수는 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이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다.

출력

첫째 줄에 n번째 피보나치 수를 출력한다.

예제 입력 1

10

예제 출력 1

55

해결할 방법을 생각해보자.💡

자연수 혹은 0인 n을 받아주자.

n = int(input())

피보나치 수열은 현재 위치가 n이라고 한다면 n-2번째 위치의 값과 n-1번째 위치의 값을 더한 값이 n이 된다.

수열의 첫 0, 1, 1, 2, 3, 5 … 중에서 0, 1 부분을 0번째, 1번째 위치라고 생각해보자.

우리가 입력받을 값 n은 위치를 받는 것과 같다. 따라서, 0과 1번째 값은 자기 자신을 반환시켜주고 다른 값들은 자신의 위치에서 -1번째 위치와 -2번째 위치의 값을 받도록 코드를 구성하면 된다.

재귀함수를 사용할 것이므로 함수 안에 자신을 포함시켜준다.

def fibo(x):
    if x <= 1:
        return x
    
 	return fibo(x-2) + fibo(x-1)

그리고 받은n을 파라미터로 넣어 출력시켜주면 끝

print(fibo(n))

코드💻

n = int(input())

def fibo(x):
    if x <= 1:
        return x

    return fibo(x-1) + fibo(x-2)

print(fibo(n))

해결 로그

문제 푼 날짜 체크
2022-06-16
   
   
   
   

2022

[web]jQuery 복습 3

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

13 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

14 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

5 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

10 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑