728x90
https://www.acmicpc.net/submit/2502/60629260
로그인
www.acmicpc.net
시작 값을 모르는 피보나치수열의 n 번째 값이 주어진다
피보나치수열의 시작을 미지수 x, y 라 하면
x, y, x+y ,x+2y, 2x+3y ... 이런 식으로 미지수 앞에 계수가 피보나치수열의 값으로 진행한다
그러면 n을 아니까 n 번 진행시켜 계수 a와 b를 구하고 ax+by=m 방정식을 풀어야 하는데 n과 m 은 주어지고
a와 b는 다른 방법으로 구할 수 있으니 x 와 y만 구하면 된다
y=(m-ax)/b인 데
수열의 값은 정수이므로 m-ax 가 b로 나누어떨어지는 값을 구하면 된다 1부터 시작해서
n,m=map(int,input().split())
a=0
b=1
for i in range(n-2):
a,b=b,a+b
x=1
while True:
if (m-x*a)%b==0:
break
x+=1
y=(m-x*a)//b
print(x)
print(y)
'알고리즘 > 백준' 카테고리의 다른 글
1463.1로 만들기 (0) | 2023.05.30 |
---|---|
11726. 2×n 타일링 python (0) | 2023.05.14 |
11053.가장 긴 증가하는 부분 수열 (0) | 2023.05.11 |
2606.바이러스 python (0) | 2023.05.06 |
1874.스택 수열 python (0) | 2023.05.05 |
댓글