双层循环过不了?本人50分

P1009 [NOIP1998 普及组] 阶乘之和

yanghezong @ 2023-07-20 14:28:12

(嗨嗨嗨——老六乱入——我叫张子安——我为我自己代言——“藏话”) 双层循环过不了?本人50分 代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,ans,S=0;
    cin>>n;
    ans=1;
    for(int i=1;i<=n;++i){
        for(int j=i;j>1;--j){
            ans=ans*j;
        }
        S=S+ans;
        //cout<<ans<<endl;
        ans=1;
    }
    ans=0;
    cout<<S<<endl;
    return 0;
}
//∑

by 13867196971a @ 2023-09-02 14:17:48

吐槽改了我1小时记得给关注


by 13867196971a @ 2023-09-02 14:19:09


using namespace std;
int a[5000],f[5000];
int i,j,k,n;
void add(int shu,int t)
{   
        f[t]=f[t]+shu;
        f[t+1]=f[t+1]+f[t]/10000;
        f[t]=f[t]%10000;
}
int main()
{  
  cin>>n;
  a[1]=1;k=1;
  for(i=1;i<=n;i++)
  {  for(j=1;j<=k;j++)
     a[j]=a[j]*i;
     for(j=1;j<=k;j++)
     {  a[j+1]=a[j+1]+a[j]/10000;
        a[j]=a[j]%10000;
     }
     if(a[k+1]>0) k++; 
     for(int j=1;j<=k;j++)
     add(a[j],j); 
  }
  cout<<f[k];
  for(j=k-1;j>=1;j--)
  printf("%04d",f[j]);
  return 0;
}

by 13867196971a @ 2023-09-02 14:19:34

@yanghezong


by 13867196971a @ 2023-09-02 14:20:10

放心这个我自己写的


上一页 |