1、本网站免费注册后即可以下载,点击开通VIP会员可无限免费下载!
2、资料一般为word或PPT文档。建议使用IE9以上浏览器或360、谷歌、火狐浏览器浏览本站。
3、有任何下载问题,请联系微信客服。
扫描下方二维码,添加微信客服
沪科教版选修1 算法与程序设计《第3章 常用算法及程序实现 第四节 递归法 活动 用递归法求解“兔子问题”》优秀教学课件
给定n(n>=1),用递归的方法计算: 1+2+3+4+...+(n-1)+n
【算法分析】
本题可以用递归方法求解,其原因在于它符合递归的三个条件:
(1)本题是累加问题:当前和=前一次和+当前项,而前一次和的计算方法与其相同,只是数据不同s(n)=s(n-1)+n;
(2)给定n,所以是有限次的递归调用;
(3)结束条件是当n=1,则s=1。
递归算法——例1
设t=3时,递归调用过程为:
递归调用过程,实质上是不断调用过程或函数的过程,由于递归调用一次,所有子程序的变量(局部变量、变参等)、地址在计算机内部都有用特殊的管理方法——栈(先进后出)来管理,一旦递归调用结束,计算机便开始根据栈中存储的地址返回各子程序变量的值,并进行相应操作。
#include
using namespace std;
int fac(int n) //递归函数
{
if (n==1) return 1;
return (fac(n-1)+n); //调用下一层递归
}
int main()
{
int t;
cin>>t; //输入t的值
cout<<"s="< } …… cout<<"s="< ……