【C語言】利用遞歸函數求n的階乘


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM