第二章递归试卷资料.ppt

一个直接或间接调用自身的算法称为递归算法。 一个使用函数自身给出定义的函数称为递归函数。 例6-7 求两个正整数n和m最大公约数的递推定义式为: 要求: (1)编写求解该问题的递归算法; (2)分析当调用语句为Gcd(30, 4)时算法的执行过程和执行结果; (3)分析当调用语句为Gcd(97, 5)时算法的执行过程和执行结果; (4)编写求解该问题的循环结构算法。 解:(1)递归算法如下: int Gcd(int n, int m) { if(n 0 || m 0) exit(0); ? if(m == 0) return n; else if(m n) return Gcd(m, n); else return Gcd(m, n % m); } (2)调用语句为Gcd(30, 4)时,因mn,递归调用Gcd(4, 2);因mn,递归调用Gcd(2, 0);因m=0,到达递归出口,函数最终返回值为n=2,即30和4的最大公约数为2。 (3)调用语句为Gcd(5,97)时,因mn,递归调用Gcd(97, 5);因mn,递归调用Gcd(5, 2);因mn,递归调用Gcd(2, 1);因mn,递归调用Gcd(1, 0);因m=0,到达递归出口,函数最终返回值为n=1,即5和97的最大公约数为1。 (4) 编写求解该问题的循环结构算法

文档评论(0)

1亿VIP精品文档

相关文档