szlh_XJS @ 2024-07-03 17:59:46
#include<bits/stdc++.h>
using namespace std;
int n,ss,sc;
int s[5000],c[5000];
void jsc(int j)
{
for(int i=1;i<=j;i++)
{
for(int t=1;t<=sc;t++)
{
c[t]*=i;
}
}
}
void jsj()
{
for(int i=1;i<=sc;i++)
{
s[i]+=c[i];
}
ss=max(sc,ss);
for(int i=1;i<=ss;i++)
{
if(s[i]<10)
{
continue;
}
else
{
s[i+1]+=(s[i]/10);
s[i]/=10;
}
}
for(int i=ss+1;;i++)
{
if(s[i]<10)
{
ss=i;
break;
}
else
{
s[i+1]+=(s[i]/10);
s[i]/=10;
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
memset(c,0,sizeof(c));
sc=c[1]=1;
jsc(i);
jsj();
}
for(int i=ss;i>=1;i--)
{
if(s[i]>0)
{
ss=i;
break;
}
}
for(int i=ss;i>=1;i--)
{
cout<<s[i];
}
return 0;
}
0分
by AndyC @ 2024-07-03 18:18:33
@szlh_XJS 你的s数组中有10以上的数字啊
by AndyC @ 2024-07-03 18:19:21
@szlh_XJS 给你个样例 6 你输出 8733 应该是873
by AndyC @ 2024-07-03 18:19:35
@szlh_XJS 求关
by szlh_XJS @ 2024-07-03 18:24:22
#include<bits/stdc++.h>
using namespace std;
int n,ss,sc;
int s[5000],c[5000];
void jsc(int j)
{
for(int i=1;i<=j;i++)
{
for(int t=1;t<=sc;t++)
{
c[t]*=i;
}
}
}
void jsj()
{
for(int i=1;i<=sc;i++)
{
s[i]+=c[i];
}
ss=max(sc,ss);
for(int i=1;i<=ss;i++)
{
if(s[i]<10)
{
continue;
}
else
{
s[i+1]+=(s[i]/10);
s[i]%=10;
}
}
for(int i=ss+1;i>=1;i++)
{
if(s[i]<10)
{
ss=i;
break;
}
else
{
s[i+1]+=(s[i]/10);
s[i]%=10;
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
memset(c,0,sizeof(c));
sc=c[1]=1;
jsc(i);
jsj();
}
for(int i=ss;i>=1;i--)
{
if(s[i]>0)
{
ss=i;
break;
}
}
for(int i=ss;i>=1;i--)
{
cout<<s[i];
}
return 0;
}
now?50分
by liyanrui0013 @ 2024-07-03 21:36:48
n=int(input()) c=0 while n>0: a=n b=1 for i in range(1,a+1): b=i*b c+=b n=n-1 print(c)
by liyanrui0013 @ 2024-07-03 21:39:05
n=int(input())
c=0
while n>0:
a=n
b=1
for i in range(1,a+1):
b=i*b
c+=b
n=n-1
print(c)
这样可以,我是初中生,有误请指教!