c++实验题教学内容.docVIP

  • 175
  • 0
  • 约1.34万字
  • 约 49页
  • 2020-06-20 发布于浙江
  • 举报
c++实验题 精品文档 精品文档 收集于网络,如有侵权请联系管理员删除 收集于网络,如有侵权请联系管理员删除 精品文档 收集于网络,如有侵权请联系管理员删除 实验八 函数递归算法 一、 实验目的 1、 掌握函数的嵌套调用和递归调用 2、 掌握递归算法 二、 实验内容 1. 函数嵌套调用是在被调用的函数内在调用其他函数,而递归调用时在被调用函数内调用自身。 嵌套调用的层数没有限制,而递归调用函数必须包含使递归终止的语句。 范例:求组合数 Cnm=n!/[m! (n-m)!](m为指数) 【分析】 求组合数要用到求阶乘,可将求阶乘定义为一个函数,在求组合数的函数中嵌套调用阶乘函数。 由于n!=n*(n-1)!,求阶乘是一个典型的递归算法,在此用递归方法实现。 【程序】 【注意】 (1) 因为阶乘极易发生溢出,所以n最大值取12,否则运算中会发生溢出。 (2) 在函数内定义局部变量时,变量名不应与函数名相同。例如,在A行,不可定义变量名为com; 在B行不可定义变量名为fac;否则程序编译会出错误。 (3)还有一种常见错误,例如: long fac(int i) { if(i==0||i==1) fac(i)=1; else fac(i)=i*fac(i-1); return fac(i); } 编译此程序,会出现提示信息 Left_value required 的

文档评论(0)

1亿VIP精品文档

相关文档