題意:求[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; }