13世纪初,意大利数学家 裴波那契(Fibonacci) 在所著的《算盘书》中提出“兔子生崽”的趣题:
- 假设兔子出生后两个月就能生小兔,且每月一次,每次不多不少恰好一对(一雌一雄),若开始时有初生的小兔一对,问一年后共有多少对兔子?
裴波那契数列是由这一“兔子生崽”问题引出的一个著名的递推数列,裴波那契数列的应用相当广泛,国际上已有许多关于裴波那契数列的专著与学术期刊,我国 周持中教授 所著的 《裴波那契——卢卡斯序列及其应用》 全面系统地研究了裴波那契与卢卡斯序列的理论及其在不定方程与数论上的应用;
裴波那契数列
裴波那契数列定义为:
- f1=f2=1,fn=fn-1+fn-2 (n>2)
试求解裴波那契数列的第n项与前n项之和 (n从键盘输入);
1.递推设计求解:
(1)、设置一维数组f(k)存储数列的第k项,显然数列的递推关系为:
- f(k)=f(k-1)+f(k-2) (k>2);
初始条件为:
- f(1)=1,f(2)=1;
从已知前两项这一初始条件出发,应用递推逐步推出第3项,第4项,……,以至堆出指定的第n项;
为实现求和,在k循环外给和变量s赋初值s=f(1)+f(2);在k循环内,每计算一项f(k),即累加到和变量s中:s=s+f(k);
(2)、递推程序设计:
#include<stdio.h>
int main()
{
int k,n;
long s,f[50];
p