2617人阅读 评论(0)

# The sum problem

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8287    Accepted Submission(s): 2530

Problem 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]

AC code:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int N,M,i,j;
while(scanf("%d%d",&N,&M) && M+N)
{
for(j=pow(2.0*M,0.5);j>0;j--)
{
i=(2*M/j-j+1)/2;
if(j*(j+2*i-1)/2==M) printf("[%d,%d]\n",i,i+j-1);
}
printf("\n");
}
return 0;
}

0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：502716次
• 积分：5627
• 等级：
• 排名：第4786名
• 原创：187篇
• 转载：14篇
• 译文：0篇
• 评论：21条
最新评论