递归实现n的阶乘
什么是阶乘:0!= 1,n!=n * (n - 1) * (n - 2)......3 * 2 * 1;
解题思路: 1> 分析题意,很明显0是递归出口;
2> 很好看出,递归调用自己,直到n等于0,返回之前的函数,直到最后一个;
3> 一个简单n的阶乘就计算完成,返回并输出。
代码:
#include<stdio.h>
int f(int n)/递归函数/
{
int fac;
if (n < 0)
printf(“n<0,data error!”);
else
if (n == 0 || n == 1)
fac = 1;
else
fac = f(n - 1) * n;
return fac;
}
int main()
{
int n, y;
printf(“请输入一个整数:\n”);
scanf_s("%d", &n);
y = f(n);
printf("%d!=%d", n, y);
return 0;
}