师梦圆 - 让备课更高效、教学更轻松!
网站地图
师梦圆
师梦圆高中信息技术教材同步沪科教版选修1 算法与程序设计活动 用递归法求解“兔子问题”下载详情

沪科教版选修1 算法与程序设计《第3章 常用算法及程序实现 第四节 递归法 活动 用递归法求解“兔子问题”》优秀教学课件

  • 下载地址
  • 内容预览
下载说明

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="<

……

教材