[P1009]水橙蒟蒻求助,最高可得8关注

P1009 [NOIP1998 普及组] 阶乘之和

zhangmingsheng3521 @ 2023-08-19 22:41:20

rt.每找出一个代码中的有意义错误得2关,4关封顶

帮我调出AC代码(大框架别改且别ctj)得4关.与前一条叠加

代码如下:

#include"bits/stdc++.h"
using namespace std;
int main() 
{
    int xa[200],xaa[200],sum[200],na[3];
    bool flag=false;
    int n,x=1;
    scanf("%d",&n);
    memset(xa,0,sizeof(xa));
    memset(xaa,0,sizeof(xaa));
    xa[1]=1;
    for (int i=1;i<=n;i++)
    {
        na[1]=i%10;
        na[2]=i/10;
        memset(xaa,0,sizeof(xaa));
        for (int s=1;s<=199;s++)
        {
            xaa[s+1]=xaa[s];
        }
        for (int s=1;s<=198;s++)
        {
            xaa[s]=xaa[i]*na[1];
            xaa[s+1]+=xaa[s]/10;
            xaa[s]=xaa[s]%10;
        }
        for (int s=1;s<=198;s++)
        {
            xa[s]=xa[i]*na[2];
            xa[s+1]+=xa[s]/10;
            xa[s]=xa[s]%10;
        }
        for (int s=1;s<=198;s++)
        {
            xa[s]+=xaa[s];
        }
        for (int s=1;s<=198;s++)
        {
            sum[s]+=xa[s];
            sum[s+1]+=sum[s]/10;
            sum[s]=sum[s]%10;
        }
    }
    for (int s=198;s>=2;s--)
    {
        if (sum[s]!=0)
        {
            flag=true;
        }
        if (flag)
        {
            printf("%d",sum[s]);
            printf(" ");
        }
    }
    return 0;
}

by Michaellg @ 2023-08-20 12:04:17

@zhangmingsheng3521
第 16、17行写反了
第 25、31 行 i 应改为 s
第 37 行后还要取模
然后好像就可以 AC


by Michaellg @ 2023-08-20 12:05:37

还有第 21 行


by zhangmingsheng3521 @ 2023-08-20 18:26:17

@Michaellg 调完的AC代码能给我吗谢谢,我那边行数跟你那边好像不太一样


by Michaellg @ 2023-08-20 18:47:52

@zhangmingsheng3521

#include"bits/stdc++.h"
using namespace std;
int xa[200],xaa[200],sum[200],na[3];
int main() 
{
    bool flag=false;
    int n;
    scanf("%d",&n);
    memset(xa,0,sizeof(xa));
    memset(xaa,0,sizeof(xaa));
    xa[1]=1;
    for (int i=1;i<=n;i++)
    {
        na[1]=i/10;
        na[2]=i%10;
        memset(xaa,0,sizeof(xaa));
        for (int s=1;s<=198;s++)
        {
            xaa[s+1]=xa[s];
        }
        for (int s=1;s<=198;s++)
        {
            xaa[s]=xaa[s]*na[1];
        }
        for (int s=1;s<=198;s++)
        {
            xaa[s+1]+=xaa[s]/10;
            xaa[s]=xaa[s]%10;
        }
        for (int s=1;s<=198;s++)
        {
            xa[s]=xa[s]*na[2];
        }
        for (int s=1;s<=198;s++)
        {
            xa[s]+=xaa[s];
            xa[s+1]+=xa[s]/10;
            xa[s]=xa[s]%10;
        }
        for (int s=1;s<=198;s++)
        {
            sum[s]+=xa[s];
            sum[s+1]+=sum[s]/10;
            sum[s]=sum[s]%10;
        }
    }
    for (int s=198;s>=1;s--)
    {
        if (sum[s]!=0)
        {
            flag=true;
        }
        if (flag)
        {
            printf("%d",sum[s]);
        }
    }
    return 0;
}

by zhangmingsheng3521 @ 2023-08-20 18:55:27

@Michaellg 好的,谢谢!请问您还有什么小号需要关注吗?您我刚刚已经关了


by Michaellg @ 2023-08-20 19:06:13

@zhangmingsheng3521 1 个关注就可以了


by zhangmingsheng3521 @ 2023-08-20 19:15:23

@Michaellg 刚刚启动小号给您了第二个关,然而邮箱最近搞太多要手机号了,后面的一定会给您补上


上一页 |