c语言求阶乘,求解,可以的话注释一下

img

#include <stdio.h>
int main()
{
    double sum=0,t=1;
    int n,i;
    //输入n
    scanf("%d",&n);
    
    for(i=1;i<=n;i++)
    {
        //计算i的阶乘
        t *= i;
        //i的阶乘相加
        sum += t;
    }
    //输出
    printf("%lf",sum);
    return 0;
}
#include <stdio.h>
long long fact (int x) {
    if (x == 1 || x == 0)    return 1;
    else    return x * fact(x - 1);
}
int main(void) {
    int N, i;
    long long sum;
    
    sum = 0;
    scanf("%d", &N);
    for (i = 1; i <= N; i++)
        sum += fact(i);
    printf("%lld", sum);    
    return 0;
}