C语言程序设计任务5:计算斐波那契数列第N项主讲:王鑫目 录CONTENTS案例导入C语言程序设计编写程序:斐波那契数列就是:1 1 2 3 5 8 13 21 34……这样一串有规律的数,即从第三个数开始,该数字为前两个数字之和。计算第N个项数列的值,用递归算法实现。 案例导入C语言程序设计编写程序:斐波那契数列就是:1 1 2 3 5 8 13 21 34……这样一串有规律的数,即从第三个数 开始,该数字为前两个数字之和。计算第N个项数列的值,用递归算法实现。 1)找出这项数列的递推过程:F(n)=F(n-1)+F(n -2);2)寻找递归出口:F(1)=1;F(2)=1;3)根据上两个条件计算F(n):即递归函数的调用 。 递归算法C语言程序设计 一个函数的定义过程中直接或间接地调用该函数本身,称为函数的递归调用。 2.1递归定义递归算法C语言程序设计1)原问题能分解为若干类 同子问题;2)必须有退出递归的出口,即某子问题必须有确定的解,不能无限循环。2.2递归算法满足条件递归算法C语言程序设计递归调用其 实就是一个进栈和出栈的过程。2.3递归的调用所谓“栈”类似一个“桶”,有个栈顶和栈底,栈底封起来,现放入桶里的东西会被压在下面,后 放入桶里的东西在上面,即后进先出。递归算法C语言程序设计2.3递归的调用我们用F(n)函数表示第n项的值。以n=5为例F(5)F( 4)F(3)F(2)F(1)F(1)=1F(2)=1F(3)=F(2)+F(1)=1+1=2F(4)=F(3)+F(3)=2+1= 3F(5)=F(4)+F(3)=3+2=5任务实现C语言程序设计小结C语言程序设计案例导入C语言程序设计编写程序:要求从键盘输入一 个正整数n,计算n!。 我会做:计算N的阶乘算法分析C语言程序设计编写程序:要求从键盘输入一个正整数n,计算n!。 n!的数学 表达式为:递归的条件:(1)(n-1)!与n!是类似的;(2)(n-1)!是n!计算的简化。任务实现C语言程序设计小结C语言程序设 计C语言程序设计再见 |
|