首页 > 其他 > 详细

__________________________________________________2058_________________________________________后台数据不够。可能误判。

时间:2015-11-25 13:23:13      阅读:266      评论:0      收藏:0      [点我收藏+]
//错误代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
    int i,n,m,k,t,s;
    while(scanf("%d%d",&n,&m)&&(n||m))
    {
        s=(int)sqrt((double)2*m);
        if(n<s)
            k=n;
        else
            k=s;
        for(;k>=0;k--)
            if(m*2%(k+1)==0)
            {
                t=m*2/(k+1)-k;
                if(t%2==0&&t>0&&t<=2*n)
                {
                //    if(t/2+k>n)
                //        continue;
                    printf("[%d,%d]\n",t/2,t/2+k);
                }
            }
            printf("\n");
    }  
}
//正确代码:
/*咋说来:
做出来的方法是一个一个条件  慢慢减少  运算的步骤。
1:首先找出最长的那个连续之和的长度是多少。如果n和应该是多少的比较誰最小就选谁。
2:
*/        
#include<stdio.h>
#include<math.h>
int main()
{
    int i,n,m,k,t,s;
    while(scanf("%d%d",&n,&m)&&(n||m))
    {
        s=(int)sqrt((double)2*m);
        if(n<s)
            k=n;
        else
            k=s;
        for(;k>=0;k--)
            if(m*2%(k+1)==0)
            {
                t=m*2/(k+1)-k;
                if(t%2==0&&t>0&&t<=2*n)
                {
                    if(t/2+k>n)
                        continue;
                    printf("[%d,%d]\n",t/2,t/2+k);
                }
            }
            printf("\n");
    }  
}

 

__________________________________________________2058_________________________________________后台数据不够。可能误判。

原文:http://www.cnblogs.com/A-FM/p/4994300.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!