/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:刘畅
* 完成日期:2014 年 11 月 15 日
* 版 本 号:v1.0
*
* 问题描述:编写递归函数求出n的阶乘;
* 输入描述: 输入一个数n;
* 程序输出: 输出n的阶乘。
*/
#include <iostream>
using namespace std;
long fac(int );
int main( )
{
int n;
long m;
cin>>n;
if (n<0)
return 0;
else
{
m=fac(n);
cout<<n<<"!="<<m<<endl;
}
return 0;
}
long fac(int n)
{
long i;
if (n==0||n==1)
i=1;
else
i=fac(n-1)*n;
return i;
}
运行结果:
学习心得:
书上有相同的例题,但偷了点懒,把n为负的情况没写上来,话说为什么负数的阶乘为-1啊???。