题目:利用递归方法求5!。
1.程序分析:递归公式:f(n)=f(n-1)*4!
2.程序源代码:
1.程序分析:递归公式:f(n)=f(n-1)*4!
2.程序源代码:
#include <stdio.h>
/*
* 从主函数传入整型n,
* 调用函数输出n!
*/
int func(int n);
void main()
{
int n;
printf("请输入一个整型数字并按回车输出结果:\n");
scanf("%d",&n);
printf("%d!=%d\n",n,func(n));
}
int func(int n)
{
if(n < 0)
{
printf("您输入的数字不合法\n");
return 0;//负数没有阶乘
}
else if(n==0)
return 0;
else
{
if(n==1)
return 1;
else
return(func(n-1)*n);
}
}
递归思想:
1、没有无穷递归,即总存在一种if,使得递归函数停止下来。
2、对于所有牵涉到的递归每一种情况,递归调用都返回正确的值。
3、递归是否正确可使用数学归纳法检验。