题目:
用循环队列编写求k阶斐波那契序列中前n+1项(f1,f2,…,fn)的算法,要求满足fn≤(小于等于)max,而fn +1>max
max为某个约定的常数。注意:本题所用循环队列的容量为k,算法结束时,留在队列中的元素为所求k阶斐波那契序列中的最后k项
输入 输入表示阶数的k(2<= k <= 100)以及表示某个常数的max(0 <= max <= 100000)。 输出 输出满足条件的项n(n从0开始计数),占一行; 以及第n项的值,占一行; 输出一个回车符。 输入样例 4 10000 输出样例 17 5536思路:
已知K阶斐波那契数列定义为: f0 = 0,f1 = 0, … ,fk-2 = 0, fk-1 = 1;
并且fn = fn-1 + fn-2 + … + fn-k , n = k , k + 1, …
化简一下,得到迭代公式: ①:f(m)=f(m-1)+f(m-2)+…+f(m-k) ②:f(m-1)=f(m-2)+f(m-3)+…+f(m-k-1) ①-②: f(m)-f(m-1)=f(m-1)-f(m-k-1) f(m)=2f(m-1)-f(m-k-1)
转载于:https://www.cnblogs.com/luckyraye/p/6715362.html
相关资源:循环队列实现求k阶斐波那契数列