帮帮忙吧,这道题怎么做呀?

img

#include <stdio.h>
double fact(int n)
{
    if (n == 0 || n == 1)
        return 1;
    else if (n > 1)
        return n * fact(n - 1);
}
int main(void)
{
    int n = 0;
    printf("输入一个正整数:");
    scanf("%d", &n);
    printf("%d的阶乘为:%.0lf\n", n, fact(n));
    return 0;
}

有帮助望采纳

从n~1循环。

阶乘就是n!,即n*(n-1)(n-2)…1,可以用循环求解,不如将阶乘反过来即1* 2 * 3…*n,这样使用循环求解代码更简单些