HDU_杭电ACM_2058
2015-04-28 23:20 HaodongGUO 阅读(195) 评论(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;
}
浙公网安备 33010602011771号