c语言

C语言递归函数如何实现阶乘

小樊
82
2024-10-30 18:20:26
栏目: 编程语言

在C语言中,你可以使用递归函数来实现阶乘

#include <stdio.h>

// 递归函数实现阶乘
unsigned long long factorial(unsigned int n) {
    if (n == 0) {
        return 1; // 0的阶乘为1
    } else {
        return n * factorial(n - 1); // 递归调用,n的阶乘等于n乘以(n-1)的阶乘
    }
}

int main() {
    unsigned int number;
    printf("请输入一个非负整数: ");
    scanf("%u", &number);

    // 检查输入是否为非负整数
    if (number < 0) {
        printf("输入错误,请输入一个非负整数。\n");
    } else {
        unsigned long long result = factorial(number);
        printf("%u的阶乘为: %llu\n", number, result);
    }

    return 0;
}

这个程序首先定义了一个名为factorial的递归函数,该函数接受一个无符号整数n作为参数。如果n为0,函数返回1,因为0的阶乘为1。否则,函数返回n乘以factorial(n - 1)的结果,这是递归调用的关键部分。

main函数中,我们从用户那里获取一个非负整数,然后调用factorial函数计算其阶乘,并将结果输出到屏幕上。

0
看了该问题的人还看了