求助看看哪里错了
查看原帖
求助看看哪里错了
542863
新时代卷王楼主2021/8/30 11:05
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int num,len;
    int n[20];//用来储存阶乘结果
    int x[20];//用来储存累计的和
    int t[20];//用来求阶乘
    memset(n,0,20);
    memset(x,0,20);
    n[0]=1;
    cin>>num;
    for(int i=1;i<=num;i++)
    {
        memset(t,0,20);
        for(int k=0;k<20;k++)//求阶乘
        {
            t[k]+=n[k]*i;
            t[k+1]=t[k]/10;
            t[k]=t[k]%10;
            if(t[k+1]==0)
            break;
        }
        
        for(int m=0;t[m]>0;m++)//复制数据
        {
            n[m]=t[m];
        }
        
        
        
        for(int j=0;j<20;j++)//求和
        {
            x[j]+=n[j];
            x[j+1]=x[j]/10;
            x[j]=x[j]%10;
            if(x[j+1]==0)
             {
                 len=j;
                 break;
             }
        }
        
       
        
    }
    
    
    
     while(len>=0)//遍历输出
        {
            cout<<x[len];
            len--;
        }
        
    
    
    
    return 0;
}
~~~
2021/8/30 11:05
加载中...