1 条题解

  • 0
    @ 2023-6-11 12:16:30

    C :

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<ctype.h>
    #include<math.h>
    int a[10005];
    //每次都计算 a数组*k 
    void ans(int k){ //123
    	int i;
    	//每一位都乘以k 
    	for(i=0;i<10000;i++){
    		a[i] = a[i]*k;
    	}
    	for(i=0;i<10000;i++){
    		a[i+1] = a[i+1] + a[i]/10;
    		a[i] = a[i]%10;
    	}
    }
    int main(){
    	int n,i;
    	scanf("%d",&n);
    	a[0] = 1; 
    	for(i=1;i<=n;i++){
    		ans(i);
    	}
    	int p=1000;
    	for(i=p;i>=0;i--){
    		if(a[i]!=0){
    			p = i;
    			break;
    		}
    	}
    	for(i=p;i>=0;i--){
    		printf("%d",a[i]);
    	}
    	return 0;
    }
    
    

    C++ :

    #include <iostream>
    #include <cstring>
    using namespace std;
     
    int main(){
        int n,i,j;
        cin>>n;
        int len=1;
        int m[10000]={1};
        for(i=1;i<=n;i++){
            for(j=0;j<len;j++){
                m[j]=m[j]*i;
            }
            len=len+4;
            for(j=0;j<len;j++){
                if(m[j]>=10){
                    m[j+1]=m[j+1]+m[j]/10;
                    m[j]=m[j]%10;
                }
            }
            while(m[len-1]==0){
                len--;
            }
        }
        int flag=0;
        for(i=len;i>=0;i--){
            if(m[i]!=0){
                flag=1;
            }
            if(flag==1){
                cout<<m[i];
            }
        }
    }
    
    

    Python :

    s=1
    for i in range(1,int(input())+1):
    	s*=i
    print(s)
    
    • 1

    信息

    ID
    2206
    时间
    1000ms
    内存
    16MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者