1 solutions

  • 0
    @ 2024-12-10 21:47:36

    C :

    #include<stdio.h>
    #include<string.h>
    
    const int maxn = 3000;
    
    int main()
    {
    	int k;
    	int i, j;
    	int f[8][maxn];
    	int num[3] = {0};
    	for(k = 0; k < 8; k++)
    	{
    		scanf("%d", &num[k]);
    	}
    	for(k = 0; k < 8; k++)
    	{
    		memset(f[k], 0, sizeof(f[k]));
    	    f[k][0] = 1;
    	    for(i = 2; i <= num[k]; i++)
    	    {
    		    int c = 0;
    		    for(j = 0; j < maxn; j++)
    		    {
    			    int s = f[k][j] * i + c;
    			    f[k][j] = s % 10;
    			    c = s /10;
    		    }
     	    }
    	}
    	for(k = 0; k < 8; k++)
    	{
    		for(j = maxn - 1; j >= 0; j--)
    	    {
    		    if(f[k][j]) break;
          	}
    	    for(i = j; i >= 0; i--)
    	    {
    		    printf("%d", f[k][i]);
            }
            printf("\n");
    	}
    	return 0;
    }
    
    • 1

    【设计型】第11章:指针和数组 11.9 n的阶乘

    Information

    ID
    504
    Time
    1000ms
    Memory
    2MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By