本章内容n递归与循环n递归函数的执行过程n递归函数效率循环与递归n循环程序n用于描述需要重复进行计算n高级语言里,也常见用递归来实现重复的计算。n递归recursion,recursive algorithmn函数或过程调用自身nC语言允许递归,可以在函数内调用自身,常常使程序更简单清晰。1.阶乘和乘幂n例:定义计算整数阶乘的函数n12(n-1)nn本例中,乘的次数依赖于n,计算所需的次数定义时无法确定。n这是一种典型循环情况n计算“次数”依赖某些参数的值。程序long fact1(long n)long fac,i;for(fac=1,i=1;i=n;i+)fac*=i;return fac;阶乘函数的精确定义n是一种递归定义的形式n要解决规模为n的问题,要先解决规模为n-1的子问题,依此类推。n如果高级语言允许递归定义函数,就可以直接翻译为程序。nC允许递归定义n在函数定义内直接或间接地调用被定义函数本身。写成递归函数long fact(long n)return n=0?1:n*fact(n-1);long fact(long n)if(n=1)return 1;return n