递归函数求n的阶乘

递归函数求n的阶乘

时间: 1ms        内存:128M

描述:

输入一个正整数n,利用递归函数求n的阶乘。

递归函数声明如下:

int  fac(int n);  //求n!的递归函数声明

输入:

一个正整数n

输出:

n的阶乘值

示例输入:

5

示例输出:

120

提示:

参考答案(内存最优[920]):

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int fac(int n);
    int n,y;
    scanf("%d",&n);
    y=fac(n);
    printf("%d",y);
    return 0;
}
int fac(int n)
{
    int f;
    if(n==0||n==1)f=1;
    else f=fac(n-1)*n;
    return (f);
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;

int fac(int x); //求x的阶乘的递归函数声明

int main()
{
  int n; 
  cin>>n;
  if(n>=1)
    cout<<fac(n)<<endl;
  else
	cout<<"error"<<endl;
  return 0;
}

int fac(int x) //求x的阶乘的递归函数定义
{
   if(x==1)
	   return 1;
   else
	   return x*fac(x-1); 
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞