728x90
문제
피보나치 수열은 다음과 같이 그 전 두 항의 합으로 계산되는 수열이다. 첫 두 항은 1로 정의된다.
f(1) = 1, f(2) = 1, f(n > 2) = f(n − 1) + f(n − 2)
정수를 입력받아, 그에 해당하는 피보나치 수를 출력하는 프로그램을 작성하여라.
https://www.acmicpc.net/problem/4150
예제
# input
100
# output
354224848179261915075
문제 풀이
N = int(input())
dp = [0] * (N+3)
dp[1] = 1
dp[2] = 1
for i in range(3, N+1):
dp[i] = dp[i-1] + dp[i-2]
print(dp[N])
N = int(input())
if N == 1 or N == 2:
print(1)
else:
a, b = 1, 1
for _ in range(3, N+1):
a, b = b, a+b
print(b)
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90