본문 바로가기
알고리즘/백준

2502.떡 먹는 호랑이 python

by 1.5볼트 2023. 5. 15.
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

댓글