第7章 用函数实现模块化程序设计 ppt.Convertor(4)

2019-04-05 16:41

n=5

c=age(3)+2 age函数 n=4

c=age(1)+2 age函数 n=2

c=age(2)+2 age函数 n=3 c=10 age函数 n=1

age(1)=10 age(2)=12 age(3)=14 age(4)=16 age(5)=18 18

例7.7 用递归方法求n!。 解题思路:

求n!可以用递推方法:即从1开始,乘2,再乘3??一直乘到n。

递推法的特点是从一个已知的事实(如1!=1)出发,按一定规律推出下一个事实(如2!=1!*2),再从这个新的已知的事实出发,再向下推出一个新的事实(3!=3*2!)。n!=n*(n-1)!。 例7.7 用递归方法求n!。 解题思路:

求n!也可以用递归方法,即5!等于4!×5,而4!=3!×4?,1!=1 可用下面的递归公式表示: #include int main()

{int fac(int n); int n; int y;

printf(\ scanf(\ y=fac(n);

printf(\ return 0; }

int fac(int n) {

int f;

if(n<0) printf(\ else if(n==0 | | n==1)

f=1;

else f=fac(n-1)*n; return(f); }

注意溢出 fac(5)

输出fac(5) main f=fac(4)×5 fac函数 n=5

f=fac(3)×4 fac函数 n=4

f=fac(1)×2 fac函数 n=2

f=fac(2)×3 fac函数 n=3 f=1

fac函数 n=1 fac(1)=1 fac(2)=2 fac(3)=6 fac(4)=24 fac(5)=120 120

例7.8 Hanoi(汉诺)塔问题。古代有一个梵塔,塔内有3个座A、B、C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动一盘子的步骤。 解题思路:

要把64个盘子从A座移动到C座,需要移动大约264 次盘子。一般人是不可能直接确定移动盘子的每一个具体步骤的

老和尚会这样想:假如有另外一个和尚能有办法将上面63个盘子从一个座移到另一座。那么,问题就解决了。此时老和尚只需这样做: 解题思路:

(1) 命令第2个和尚将63个盘子从A座移到B座

(2) 自己将1个盘子(最底下的、最大的盘子)从A座移到C座 (3) 再命令第2个和尚将63个盘子从B座移到C座 A B

C ……

将63个从A到B 第1个和尚的做法 A B C

将63个从A到B 第1个和尚的做法 A B C

将1个从A到C 第1个和尚的做法 A B C

将1个从A到C 第1个和尚的做法 A B C

将63个从B到C 第1个和尚的做法 A B C

将63个从B到C 第1个和尚的做法 A B C ……

将62个从A到C 第2个和尚的做法 A B C

将62个从A到C 第2个和尚的做法 A B C

将1个从A到B

第2个和尚的做法 A B C

将1个从A到B 第2个和尚的做法 A B C

将62个从C到B 第2个和尚的做法 A B C

将62个从C到B 第2个和尚的做法 第3个和尚的做法 第4个和尚的做法 第5个和尚的做法 第6个和尚的做法 第7个和尚的做法 ……

第63个和尚的做法

第64个和尚仅做:将1个从A移到C A B C

将3个盘子从A移到C的全过程 将2个盘子从A移到B A B C

将3个盘子从A移到C的全过程 将2个盘子从A移到B A B C

将3个盘子从A移到C的全过程 将1个盘子从A移到C A B C

将3个盘子从A移到C的全过程 将1个盘子从A移到C

A B C

将3个盘子从A移到C的全过程 将2个盘子从B移到C A B C

将3个盘子从A移到C的全过程 将2个盘子从B移到C A B C

将2个盘子从A移到B的过程 将1个盘子从A移到C A B C

将2个盘子从A移到B的过程 将1个盘子从A移到C A B C

将2个盘子从A移到B的过程 将1个盘子从A移到B A B C

将2个盘子从A移到B的过程 将1个盘子从A移到B A B C

将2个盘子从A移到B的过程 将1个盘子从C移到B A B C

将2个盘子从A移到B的过程 将1个盘子从C移到B A B C

将2个盘子从B移到C的过程


第7章 用函数实现模块化程序设计 ppt.Convertor(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1080P工程手册2013 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: