首页 > 代码库 > vijos - P1543极值问题(斐波那契数列 + 公式推导 + python)
vijos - P1543极值问题(斐波那契数列 + 公式推导 + python)
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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。