递归函数求一个数的阶乘(二)

下面是一个使用递归函数计算一个数的阶乘的示例代码:

#include <stdio.h>

unsigned long long factorial(unsigned int n) {
    
    
    if (n == 0) {
    
    
        return 1;
    } else {
    
    
        return n * factorial(n - 1);
    }
}

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

    unsigned long long result = factorial(number);
    printf("%u的阶乘为:%llu\n", number, result);

    return 0;
}

在这个示例中,我们定义了一个递归函数factorial,它接受一个无符号整数n作为参数,并返回n的阶乘。

递归函数的终止条件是当n等于0时,返回1。否则,调用函数自身并乘以n,以求得n的阶乘。

main函数中,我们先输入一个非负整数作为要计算阶乘的数,然后调用factorial函数计算阶乘,并将结果存储在result变量中。

最后,使用printf函数输出计算结果。

当你运行这个程序时,它将提示你输入一个非负整数,并输出该数的阶乘。

例如,如果输入5,则输出:

5的阶乘为:120

请注意,由于阶乘的结果可能非常大,因此我们使用了unsigned long long类型来存储计算结果,以确保能够容纳较大的阶乘值。

猜你喜欢

转载自blog.csdn.net/weixin_37787043/article/details/131521265
今日推荐