首页 > 其他 > 详细

HDU_杭电ACM_2058

时间:2015-04-29 00:22:46      阅读:284      评论:0      收藏:0      [点我收藏+]

今天做了一道简单的数学题算法

ac代码 :

#include <stdio.h>
#include <math.h>
//
int main()
{
    int N,M,i,j;
    while(scanf("%d%d",&N,&M) && M+N)
    {
        for(j=pow(2.0*M,0.5);j>=1;j--) //区间长度最短为1;j*j<2m,所以,j从sprt(2*m)开始
        {
            i=(2*M/j-j+1)/2;//i所求区间表示起始值,j表示区间长度
            if(j*(j+2*i-1)/2==M) 
                printf("[%d,%d]\n",i,i+j-1);//由分析可得
        }
        printf("\n");
    }
    return 0;
}        

  

HDU_杭电ACM_2058

原文:http://www.cnblogs.com/41412179guo/p/4464394.html

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