求大神:C语言求50以内整数的阶乘(大数)

如题所述

刚答过一个大数阶乘的,精确算到10000!没问题

#include <stdio.h>
#define N 10000
int main()
{
    static long int r[N] = { 1 };
    int i, j,n;
    int k = 0, l = 0;
    printf("输入一个数求其阶乘\n");
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        for (j = 0; j <= l; j++)
        {
            r[j] = r[j] * i + k;
            k = r[j] / 10000;
            r[j] = r[j] % 10000;
        }
        if (k)
        {
            l++;
            r[j] = k;
            k = 0;
        }      
    }  
    j = l;
    printf("%d!=%d", i-1, r[j--]);
    for (; j >= 0; j--)
    {
        printf("%04d", r[j]);
    }
    printf("\n");
    return 0;
}

追问

您好,能麻烦一下把答案复制给我吗?
我好像不能复制……

追答

#include #define N 10000 int main() { static long int r[N] = { 1 }; int i, j,n; int k = 0, l = 0; printf("输入一个数求其阶乘\n"); scanf("%d", &n); for (i = 1; i = 0; j--) { printf("%04d", r[j]); } printf("\n"); return 0; }

追问

谢谢谢谢(*°∀°)=3

温馨提示:答案为网友推荐,仅供参考
相似回答