第九部分递归程序设计技术学习程序设计需要注意规律性的东西北京交通大学计算机与信息技术学院 教师: 林友芳本章内容n 递归与循环n 递归函数的执行过程n 递归函数效率北京交通大学计算机与信息技术学院 教师: 林友芳循环与递归n 循环程序n 用于描述需要重复进行计算n 高级语言里,也常见用递归来实现重复的计算。n 递归recursion,recursivealgorithmn 函数或过程调用自身n C语言允许递归,可以在函数内调用自身,常常使程序更简单清晰。北京交通大学计算机与信息技术学院 教师: 林友芳1.阶乘和乘幂n 例:定义计算整数阶乘的函数n 12(n-1)nn 本例中,乘的次数依赖于n,计算所需的次数定义时无法确定。n 这是一种典型循环情况n 计算“次数”依赖某些参数的值。北京交通大学计算机与信息技术学院 教师: 林友芳程序longfact1(longn)longfac,i;for(fac=1,i=1;i=n;i+)fac*=i;returnfac;北京交通大学计算机与信息技术学院 教师: 林友芳阶乘函数的精确定义n 是一种递归定义的形式n 要解决规模为n的问题,要先解决规模为n