|
|
发表于 2012-6-22 09:31:32
|
显示全部楼层
本帖最后由 yuprxk 于 2012-6-22 10:35 编辑
#include<stdio.h>
int recursion (int n);
void main()
{
int n, y;
int fac(int n);
printf("Please input a interger number: ");
scanf("%d", &n);
if (n < 0)
{
printf ("Your input is error!\n");
}
else /*n >= 0 的情况*/
{
y = fac(n);
//y = recursion (n);
//输出结果
printf("%d! = %d\n", n, y);
}
}
/*
**在求递归的函数中,不对值的有效性进行检查
**检查放在函数调用时
*/
int fac(int n)
{
int f;
/*
if(n < 0)
{
printf("Your input is error!\n");
goto loop ;
}
else */if(0 == n || 1 ==n)
f = 1;
else
f = fac(n-1) * n;
return(f);
}
/**/
int recursion (int n)
{
if ( n <= 0)
{
return 1;
}
else
{
return n * recursion ( n - 1 );
}
}
|
|