C語言遞歸實現階乘


#include <stdio.h>
int fact1(int);
int fact2(int);

// 方法1
int fact1(int num)
{
    int result = 0;
    if (num > 0) {
        result = num * fact1(num - 1);
    } else {
        result = 1;
    }

    return result;
}

// 方法2
int fact2(int num)
{
    if (num > 1) {
        return  num * fact2(num - 1);
    } else {
        return 1;
    }
}

int main(void)
{
    int num;
    printf("請輸入一個數字:");
    scanf("%d", &num);
    printf("函數1階乘結果:%d\n", fact1(num));
    printf("函數2階乘結果:%d\n", fact2(num));
}

output:
[root@centos8 ~]# gcc r.c && ./a.out
請輸入一個數字:5
函數1階乘結果:120
函數2階乘結果:120
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章