题解 | #阶乘#

阶乘

https://www.nowcoder.com/practice/4b8f5815c7cd40ab851c24fc5de70fa4

#include<stdio.h>
int mul(int* A, int n, int num) {
    int i, j;
    for (i = 0; i < n; i++) {
        A[i] *= num;
    }
    for (j = n - 1; j > 0; j--) {
        if (A[j] >= 10) {
            A[j - 1] += A[j] / 10;
            A[j] %= 10;
        }
    }
    return 0;
}
int main( ) {
    int j;
    scanf("%d", &j);
    while (j > 0) {
        j--;
        int i, n = 50, num;
        scanf("%d", &num);
        int A[n];
        for (i = 0; i < n; i++)A[i] = 0;
        A[n - 1] = 1;
        for (i = 2; i <= num; i++)mul(A, n, i);
        for (i = 0; A[i] == 0; i++);
        for (; i < n; i++)printf("%d", A[i]);
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务