나의 풀이
n = int(input())
def fibo(n):
a,b=0,1
for i in range(n):
a,b=b,(a+b)%1000000000
return a
if n < 0:
print(-1 if (-n)%2==0 else 1)
print(fibo(-n))
elif n == 0:
print(0)
print(0)
else:
print(1)
print(fibo(n))
CODE REVIEW
- 원래는
n
이 입력되면[0]*(2*n+1)
에 해당하는 array를 만들고 짝수 index에는 양수 피보나치 수열을, 홀수 index에는 음수 피보나치 수열을 저장해 문제를 해결하고자 했다.- 그런데 n의 값이 1,000,000이므로 recursion error가 발생할 우려도 있고,
- 규칙성이 생각보다 단순해서 굳이 이 아이디어 대신 규칙성을 활용하였다.