羽渡尘552 2021-11-05 22:58 采纳率: 100%
浏览 16
已结题

杭电oj2015题显示runtime error标题长度小于10个字符,请进行修改!

img


2015题提交后在oj上显示runtime error,但我自己的编译器是可以跑并且出正确结果的。
这是我的代码:



#include <stdio.h>
#include <math.h>
int main()
{
    int a[100]= {2,};
    int i,j,k;
    int ISPRIME=1;
    int sum=0;
    for(i=1; i<100; i++) {
        a[i]=a[i-1]+2;
    }
    int n,m;
    int x,y;
    while(scanf("%d%d",&n,&m)!=EOF) {
        x=n%m;
        y=n/m;
        k=m;
        if(x==0) {
            ISPRIME=1;
            for(j=1,i=0; j<=y; j++) {
                m=j*m;
                for(i; i<m; i++) {
                    sum+=a[i];
                    
                }
                i=m;
                if(ISPRIME==1) {
                    printf("%d",sum/k);
                    ISPRIME=0;
                }
                else {printf(" %d",sum/k);}
                sum=0;
            }
            
        }else {
            ISPRIME=1;
            for(j=1,i=0; j<=y; j++) {
                m=j*m;
                for(i; i<m; i++) {
                    sum+=a[i];
                    
                }
                i=m;
                if(ISPRIME==1) {
                    printf("%d",sum/k);
                    ISPRIME=0;
                }
                else {printf(" %d",sum/k);}
                sum=0;
            }
            m=m*y;
            k=n-m;
            for(i=m;i<n;i++){
                sum+=a[i];
            }
            printf(" %d",sum/k);
            sum=0;
        }
        printf("\n");
    }

    return 0;
}
  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-06 07:23
    关注

    问题在m=jm上,这样m是会累加的。比如m=2 ,j=1,那么m=jm=2没错,再次运行,m=2,j=2,m=jm=4,序列中2-4求和也对,样例测试你能过。但是在下一组就出问题了,
    m=4,j=3,m=j
    m=43=12,序列求和就是4-12啦。
    另外定义一个变量t,使t=j
    m,这样就不会累加了

    #include <stdio.h>
    #include <math.h>
    int main()
    {
        int a[100]= {2,};
        int i,j,k;
        int ISPRIME=1;
        int sum=0;
        for(i=1; i<100; i++) {
            a[i]=a[i-1]+2;
        }
        int n,m,t;
        int x,y;
        while(scanf("%d%d",&n,&m)!=EOF) {
            x=n%m;
            y=n/m;
            k=m;
            if(x==0) {
                ISPRIME=1;
                for(j=1,i=0; j<=y; j++) {
                    t=j*m;
                    for(i; i<t; i++) {
                        sum+=a[i];
                    }
                    i=t;
                    if(ISPRIME==1) {
                        printf("%d",sum/k);
                        ISPRIME=0;
                    }
                    else {printf(" %d",sum/k);}
                    sum=0;
                }
            }else {
                ISPRIME=1;
                for(j=1,i=0; j<=y; j++) {
                    t=j*m;
                    for(i; i<t; i++) {
                        sum+=a[i];
                    }
                    i=t;
                    if(ISPRIME==1) {
                        printf("%d",sum/k);
                        ISPRIME=0;
                    }
                    else {printf(" %d",sum/k);}
                    sum=0;
                }
                m=m*y;
                k=n-m;
                for(i=m;i<n;i++){
                    sum+=a[i];
                }
                printf(" %d",sum/k);
                sum=0;
            }
            printf("\n");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月18日
  • 已采纳回答 12月10日
  • 创建了问题 11月5日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值