递归实现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("请输入一个整数: "); scanf_s("%d", &n); y = f(n); printf("%d!=%d", n, y); return 0; }