遞歸實現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; }
