求助各位大佬 样例过了,却是0分;>_<

P1009 [NOIP1998 普及组] 阶乘之和

哥,好歹讲一下你的大致思路吧,还有每个数组的意义
by 神犇梦的蒟蒻 @ 2018-12-08 20:15:51


要相信,样例是玄学的(样例过不了也可以AC。。。。)
by 神犇梦的蒟蒻 @ 2018-12-08 20:16:54


要相信,样例是玄学的(样例过不了也可以AC。。。。)
by Q1nghuan @ 2018-12-08 20:21:05


```c #include<iostream> using namespace std; int a[65],b[65],c[65];//a[]为记录总值,b[]为记录每次要相加的阶乘,c[]辅助b[],保证不会超过10; int main() { long long int r=0,n,w=64,i,l=0,q; cin>>n;//都懂 a[1]=1,b[1]=1; for(i=2;i<=n;i++) { for(q=1;q<=64;q++) { b[q]*=i;//计算阶乘 if(b[q]>=10)//保证不超过10位 { c[q+1]=b[q]/10;//记录超过10的单位,等下加进去 b[q]%=10;//去除10位 } } for(q=1;q<=64;q++)//保证不超过10位 { b[q]+=c[q];//相加 if(b[q]>=10) { b[q+1]+=b[q]/10; b[q]%=10; } c[q]=0;//相加后为0; a[q]+=b[q];//相加 if(a[q]>=10)//保证不超过10位 { a[q+1]+=a[q]/10; a[q]%=10; } } } for(i=1;i<=64;i++)//去掉多余的0 { if(a[i]!=0) l=i;//记录末尾位置 } for(i=1;i<=l;i++)//输出 { cout<<a[i]; } return 0; } ```
by 膨胀的木棍 @ 2018-12-09 14:52:24


感谢各位的参与 我这题0分是因为我是输出反了 现在100分了~_~;
by 膨胀的木棍 @ 2018-12-09 16:58:07


for(i=l;i>0;i--)//输出 _____________________ _____________________ { cout<<a[i]; }
by 膨胀的木棍 @ 2018-12-09 17:00:29


|