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

  • 相关阅读:
    基数排序
    阅读笔记
    构建之法阅读笔记
    找水王续
    单元测试
    个人总结
    表单整数的校验问题
    HTML 表格的书写方式:
    rgba兼容IE系列
    "position:relative"在IE中的Bug
  • 原文地址:https://www.cnblogs.com/A-FM/p/4994300.html
Copyright © 2011-2022 走看看