c问题,fibonacci数列.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c问题,fibonacci数列.相关的知识,希望对你有一定的参考价值。

求fibonacci数列中大于t(t>3)的最小的一个数,其中fibonacci数列定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
当t=1000时,值为1597.

fibonacci数列.是什么数列?
上面式子又是什么意思?怎么理解?

该问题属于fibonacci取余的问题

解法如下:

需要注意的是:

1:这道题目,建议用临时变量,没必要用数组存数列,因为题目不关心数列,只关心取余,也无法知道要设置多大的数组合适,设置小了,数组溢出,设置大了,影响内存(特别是像这样定义了这样的大数组data[20000],在之后的找工作,面试是很被动,很容易被刷);

2:为了防止n太大,f(n) 的值导致int存不下,可分步取余(c=(a+b)%10007),然后再加,再取余;

f(n-1)=( f(n-2)+f(n-3) )%10007

f(n-2)=( f(n-3)+f(n-4) )%10007

f(n)=( f(n-1)+f(n-2) )%10007

参考技术A 这可是一个自然界非常奇妙的数列,但是她的形式又是如此的简捷。这个数列是这样定义的:
定义
Fibonacci数列F(n)是由下面的正整数组成的序列:
它的第一项(n=1)和第二项为1,即F(1)=f(2)=1
其后的每一项为前两项的和,即F(n) = F(n-1)+F(n-2), 其中n >= 3

有的时候也在上面的定义中补上F(0)=0,把递归定义往前推一步,这就是你上面的式子:
定义Fibonacci数列F(n)是由下面的自然数组成的序列:
F(0)=0, F(1)=1,
F(n) = F(n-1)+F(n-2), n >= 2本回答被提问者采纳

以上是关于c问题,fibonacci数列.的主要内容,如果未能解决你的问题,请参考以下文章

Fibonacci数列

c语言经典算法---计算Fibonacci数列

Fibonacci数列

1. Fibonacci数列。Fibonacci数列的计算公式如下:

c语言:用数组来处理求Fibonacci数列问题

求fibonacci数列 java