利用递归函数调用计算N 阶乘.c

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*
file name : factor.c
Description : 利用递归函数调用计算N 阶乘
ex : n = 3 时,递归函数执行如下 :

if ( n == 1)
return (1);
else
return( 3* Factorial(3-1) );

return( 2* Factorial(2-1) );

return(1) ;
*/
#include
#include
#include


/* 函数原型宣告 */
long Factorial(long);

void main()
{
char ch;
long n;


printf("-----Factorial counting Using Recursive----");
do
{
printf("\nEnter a number( 0<=n<=12 ) to count n!: ");
scanf("%ld",&n);

/* n 值在一般系统中超过13会产生overflow 得到不正确的值*/
if ( n < 0 || n >12 )
printf("input out of range !\n");
else
printf("%ld! = %ld\n",n,Factorial(n) );

printf("Continue (y/n) ? ");
ch = toupper(getche());
} while (ch == 'Y' );
}

/* 利用递归调用自己计算N 阶乘*/
long Factorial(long n)
{
if ( n == 1 || n== 0)
return (1);
else
return( n * Factorial(n-1));
}

相关文档
最新文档