利用递归函数调用计算N 阶乘.c
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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));
}