3 条题解

  • 0
    @ 2025-6-5 21:12:36

    这是Python代码,懒得解释了

    n=eval(input())
    ans=0
    for i in range(1,n+1):
        d=1
        for j in range(1,i+1):
            d=d*j
        ans=ans+d
    print(ans)
    
    
    
    • 0
      @ 2025-6-5 21:10:44

      以下是C++版代码,轻松KO 详见代码

      #include<iostream>
      using namespace std;
      typedef long long L;
      L s[10001], i, n, j, l;
      L a[10001], u;int main() {//基础定义
      	cin >> n;s[1] = l = 1;//输入,顺便初始化
      	for (i = 1;i <= n;i++) {//循环累加
      		for (j = 1;j <= l;j++)
      			s[j] *= i;//阶乘计算
      		for (j = 1;j <= l;j++) {
      			u = s[j] / 10;
      			s[j] %= 10;//保留个位
      			s[j + 1] += u;//进位
      		}while (s[l + 1] > 0)
      			l = l + 1;//长度增加
      		for (j = 1;j <= l;j++) {//累加
      			a[j] = a[j] + s[j];//相加
      			a[j + 1] += a[j] / 10;//进位
      			a[j] = a[j] % 10;//保留个位
      		}if (a[l + 1] > 0)l++;//长度增加
      	}for (i = l;i >= 1;i--)//倒序
      		cout << a[i];//输出
      }
      
      • 0
        @ 2024-12-24 10:06:17

        C++ :

        #include<iostream>
        #include<cstring>
        using namespace std;
        int a[100000],n,i,y,xy[100000],s[100000];
        
        void add()
        {
        	int i;
        	memset(xy,0,sizeof(xy));
        	xy[0]=max(s[0],a[0]);
        	for (i=1;i<=xy[0];i++)
        	{
        		xy[i]+=s[i]+a[i];
        		xy[i+1]=xy[i]/10;
        		xy[i]%=10;
        		}
        	while (xy[xy[0]+1]>0) 
        		{
        			xy[xy[0]+2]=xy[xy[0]+1]/10;
        			xy[xy[0]+1]%=10;
        			xy[0]++;
        	    }
        	s[0]=xy[0];
        	for (i=1;i<=xy[0];i++) s[i]=xy[i];
        }
        int main()
        {
        	cin>>n;
        	a[0]=1;
        	a[1]=1;
        	s[0]=1;
        	s[1]=0;
        	for (y=1;y<=n;y++) 
        	{
        		memset(xy,0,sizeof(xy));
        	    xy[0]=a[0];
        	    for (i=1;i<=a[0];i++)
        	    {
        		  xy[i]+=a[i]*y;
        		  xy[i+1]=xy[i]/10;
        		  xy[i]%=10;
        		}
        	    while (xy[xy[0]+1]>0) 
        		{
        			xy[xy[0]+2]=xy[xy[0]+1]/10;
        			xy[xy[0]+1]%=10;
        			xy[0]++;
        	    }
        	    for (i=1;i<=xy[0];i++) a[i]=xy[i];
        	    a[0]=xy[0];
        	    add();
        	}
        	for (i=s[0];i>=1;i--) cout<<s[i];
        	cout<<endl;
        	return 0;
        }
        
        
        
        • 1

        信息

        ID
        2592
        时间
        1000ms
        内存
        128MiB
        难度
        10
        标签
        递交数
        9
        已通过
        1
        上传者