使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下两个函数: (1)fun1(int n);求出n的阶乘,必须使用递归调用。 (2)fun2(int n);求出n的阶乘,不能使用递归调用。 如果n小于1则返回0。

admin2017-09-20  30

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下两个函数:
    (1)fun1(int n);求出n的阶乘,必须使用递归调用。
    (2)fun2(int n);求出n的阶乘,不能使用递归调用。
    如果n小于1则返回0。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
∥必须使用递归
int funl(int n)
{
};
∥不能使用递归
int fun2(int n)
{
}
void main()
{
    int i;
    cout<<“请输入一个整数:”<    cin>>i;
    cout<<“输入数字的阶乘是:”<<
fun1(i)<    cout<<“输入数字的阶乘是:”<    return;
  }

选项

答案int funl(int n)//使用递归计算阶乘 { if(n<=0)//n小于等于0,直接返回0 return 0; if(n==1) //n等于1直接返回1 return 1; return n*funl(n—1);//n大于等于1。通过递归计算n! }; //不使用递归计算阶乘 int fun2(int n) { i f(n<=0)//n小于0,直接返回0 return 0; int res=1; //初始化阶乘存放变量res for(int i=1;i<=n;i++) //通过循环计算n! { Res*=i; } return res; }

解析 (1)该程序功能足对阶乘的实现。其中,阶乘的计算公式定义为:
    fn!=n*(c—1)*(c一2)*…    >1
    n<
    [n=1计算公式:n!=1
公式分为参数n是1和大于0的两种情况,例如:1的阶乘1!=1;5的阶乘5 1=5×4×3×2×1。
转载请注明原文地址:https://jikaoti.com/ti/3Nt0FFFM
0

最新回复(0)