zoukankan      html  css  js  c++  java
  • ________________2058_______________后台数据不够。可能误判。

    //正确的代码。
    #include<stdio.h>
    #include<math.h>
    int main()
    {
        __int64 n,m,i,j,s,l,l1;
        while(scanf("%I64d%I64d",&n,&m)&&(n||m))//这个是短路运算符所以需要在n和m之间加一个括号。
        {
            l=sqrt(m*2);//理解为最长的情况下有几个连续数字之和可以为l//我感觉这里只是为了保险而已所以*2.如果不*2的话会约去小数。
            for(s=0;l>0;l--)
            {
                l1=m-(l-1)*l/2;
                if(l1%l==0)//判断首项(l1=a1*l)是不是在n内,如果在n内的话(首项是有整数l和a1得到的)将其除以l可以整除,就说明a1是整数
                {
                    if(l1/l+l-1>n)
                        continue;
                    printf("[%I64d,%I64d]
    ",l1/l,l1/l+l-1);
                    s=1;
                }
                
            }
            printf("
    ");
        }
    }
    //错误的代码
    #include<stdio.h>
    #include<math.h>
    int main()
    {
        __int64 n,m,i,j,s,l,l1;
        while(scanf("%I64d%I64d",&n,&m)&&(n||m))//这个是短路运算符所以需要在n和m之间加一个括号。
        {
            l=sqrt(m*2);//理解为最长的情况下有几个连续数字之和可以为l//我感觉这里只是为了保险而已所以*2.如果不*2的话会约去小数。
            for(s=0;l>0;l--)
            {
                l1=m-(l-1)*l/2;
                if(l1%l==0)//判断首项(l1=a1*l)是不是在n内,如果在n内的话(首项是有整数l和a1得到的)将其除以l可以整除,就说明a1是整数
                {
                    //if(l1/l+l-1>n)
                    //    continue;
                    printf("[%I64d,%I64d]
    ",l1/l,l1/l+l-1);
                    s=1;
                }
                
            }
            printf("
    ");
        }
    }

    后台数据不够,导致误判。例如输入5 15

  • 相关阅读:
    带你剖析WebGis的世界奥秘----点和线的世界
    XML解析
    Java-工厂设计模式
    分享:软件包和文档
    启航,新开始
    docker容器网络通信原理分析(转)
    【好书分享】容器网络到kubernetes网络
    go语言接受者的选取
    go语言的unsafe包(转)
    protocol buffers生成go代码原理
  • 原文地址:https://www.cnblogs.com/A-FM/p/4994300.html
Copyright © 2011-2022 走看看