机工社课件C程序设计教程 PPT课件Ctutor-6-函数与程序(6-9).pptxVIP

  • 1
  • 0
  • 约1.12万字
  • 约 65页
  • 2026-05-20 发布于广东
  • 举报

机工社课件C程序设计教程 PPT课件Ctutor-6-函数与程序(6-9).pptx

李安邦,陈绪君,裘宗燕编著

《C程序设计教程》

/devcpp/ctutor

/devcpp/ctutor;2;*6.6递归函数;在数学上,有些函数是以递归形式定义的。

例如,正整数n的阶乘n!的数学严格定义为:;5;6;根据使用递归来解决问题的思想,一个递归函数应该能分别处理两种情况:

(1)基本情况:可以直接计算答案而不需要进一步的递归调用。它提供了函数终止递归调用的情况。

(2)递推关系:可将规模较大的情况转化为规模较小的同类情况。

递归函数中通常需要使用关系表达式或if语句来处理两个(或多个)分支。

因为递归函数需要调用自己,所以用递归法解决问题时需要写成单独的函数,而不能写在main函数中。;递归与递推有相似之处,递推甚至可以看做是递归的反方向,但两者有差异:

递归是把原问题逐层转化为规模较小的子问题解决,直到最小规模时可以直接得出计算结果,并逐层返回,每层返回时总把此层的返回值用于上一层的计算。

递推是根据已知信息不断的计算出未知信息,直到得到结果,思考的重点在于“步步为营”。

有些递推问题也可以用递归函数解决。;[例6-13]写一个递归函数求斐波那契数列的第n项。

intfib(intn){//求斐波那契数列第n项

return(n=2?1:fib(n-1)+fib(n-2));

}

in

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档