vijos - P1543極值問題(斐波那契數列 + 公式推導 + python)
阿新 • • 發佈:2017-05-31
找到 span add gin python3 abi pri n) fill
P1543極值問題
Accepted
標簽:[顯示標簽]
背景
小銘的數學之旅2。
描寫敘述
已知m、n為整數,且滿足下列兩個條件:
① m、n∈1,2。…,K
② (n^ 2-mn-m^2)^2=1
編一程序。對給定K,求一組滿足上述兩個條件的m、n,而且使m^2+n^2的值最大。比如,若K=1995。則m=987,n=1597,則m、n滿足條件,且可使m^2+n^2的值最大。
格式
輸入格式
輸入僅一行,K的值。
輸出格式
輸出僅一行,m^2+n^2的值。
例子1
例子輸入1[復制]
1995
例子輸出1[復制]
3524578
限制
每一個測試點1秒。
提示
Source:
汕頭市FXOI組
Phoeagon
ThanX2 Sivon
For TripleY
對於這道題目首先我們得找到項與列的關系
於是能夠得到a[i] = 3 * a[i - 1] - a[i - 2]{當中i表示的是斐波那契數列的項數}
如此就能夠解決這個問題了
#!/usr/bin/env python3 # -*- coding: utf-8 -*- k = int(raw_input()) a = 1 b = 1 ans = 2 cnt = 2 if k == 1: print 2 elif k == 2: print 5 else: while True: if ans > k:break t = a a = a + b b = t ans += a cnt += 1 c = 1 d = 1 for i in range(cnt): t = c c = c * 3 - d d = t print c
vijos - P1543極值問題(斐波那契數列 + 公式推導 + python)