hdu 2058 The sum problem(数学题)

2015-11-21 01:01:01 · 作者: · 浏览: 8

题意:求[1,n]的子区间,使得子区间的元素和为m

\

?

?

代码:

?

#include
  
   
#include
   
     #include
    
      using namespace std; int main() { int n,m; while(scanf("%d%d",&n,&m)&&(n||m)) { for(int j=(int)sqrt(2*m);j>=1;j--) { int i=(2*m/j-j+1)/2; if((i*2-1+j)*j==2*m&&i+j-1<=n) { printf("[%d,%d]\n",i,i+j-1); } } printf("\n"); } return 0; } 
    
   
  


?