(C语言课-件)第9部分_递归程序设计.pptVIP

  • 0
  • 0
  • 约8.47千字
  • 约 49页
  • 2017-01-20 发布于湖北
  • 举报
第九部分 递归程序设计技术 学习程序设计需要注意规律性的东西 本章内容 递归与循环 递归函数的执行过程 递归函数效率 循环与递归 循环程序 用于描述需要重复进行计算 高级语言里,也常见用递归来实现重复的计算。 递归—recursion, recursive algorithm 函数或过程调用自身 C语言允许递归,可以在函数内调用自身,常常使程序更简单清晰。 1. 阶乘和乘幂 例:定义计算整数阶乘的函数 1×2×…×(n - 1)×n 本例中,乘的次数依赖于n,计算所需的次数定义时无法确定。 这是一种典型循环情况 计算“次数”依赖某些参数的值。 程序 long fact1(long n) { long fac, i; for (fac = 1, i = 1; i = n; i++) fac *= i; return fac; } 阶乘函数的精确定义 是一种递归定义的形式 要解决规模为n的问题,要先解决规模为n-1的子问题,依此类推。 如果高级语言允许递归定义函数,就可以直接翻译为程序。 C允许递归定义 在函数定义内直接或间接地调用被定义函数本身。 写成递归函数 long fact (long n) { return n == 0 ? 1 : n * fact(n-1); } long fact(long n) { if (

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档