Hang electric brush oj title (2058)

The sum problem (unintelligible)

Subject description:

Given a sequence 1,2,3,......N, your job is to calculate all the possible sub-sequences that the sum of the sub-sequence is M.

Input

Input contains multiple test cases. each case contains two integers N, M( 1 <= N, M <= 1000000000).input ends with N = M = 0.

Output

For each test case, print all the possible sub-sequence that its sum is M.The format is show in the sample below.print a blank line after each test case.

Sample Input

20 10 
50 30 
0 0

Sample Output

[1,4] 
[10,10] 

[4,8] 
[6,9] 
[9,11] 
[30,30]

analysis:

Given a number of columns 1,2,3, ...... N, you have to do is calculated as the M and all consecutive series.

By the answer:

#include <stdio.h>  
#include<math.h>     
int main() {
	int n,m,len,a;
    while (scanf("%d %d", &n,&m)!=EOF&&m+n!=0) {
    	for(len=sqrt(2*m);len>=1;len--){         //len表示项数 
    		a=(2*m/len-len+1)/2;                 //计算首项 
    		if((2*a+len-1)*len/2==m){            //求和 
    			printf("[%d,%d]\n",a,a+len-1);
			}
		}
		printf("\n");           //空行 
    }
    return 0;
}

 

 

Published 76 original articles · won praise 3 · Views 1868

Guess you like

Origin blog.csdn.net/ZhangShaoYan111/article/details/104296217
Recommended