알고리즘/[python] 백준 BOJ
[python] 백준 1788 피보나치 수의 확장
Alan_Kim
2023. 4. 17. 13:34
728x90
반응형
https://www.acmicpc.net/problem/1788
1788번: 피보나치 수의 확장
첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
문제해결
- |n| >1 일 때 F[n] = F[n-1] + F[n-2] 를 이용해서 새로운 수를 F 리스트에 넣는다.
- n을 음수로 확장시켰으 때 놀라운 규칙을 알면 끝이다.
CODE
n = int(input())
s = [0, 1]
for i in range(2, abs(n) + 1):
s.append((s[i - 1] + s[i - 2]) % 1000000000)
if n % 2 == 0 and n < 0:
print(-1)
elif n == 0:
print(0)
else:
print(1)
print(s[abs(n)])
728x90
반응형