输入一个正整数n,和一个正整数NUM
求出1-n中所有连续子序列使得,子序列的和等于NUM
#include<iostream>
using namespace std;
int main()
{
int n,NUM;
cout<<"input n = ";
cin>>n;
cout<<"SUM = ";
cin>>NUM;
int *a = new int[n];
for(int i=0;i<n;i++)
a[i] = i+1;
int start = 0;
int end = 1;
int sum = a[start] + a[end];
while(end<n)
{
while(sum < NUM)
sum += a[++end];
if(sum == NUM)
{
int i = start;
while(i <= end)
{
cout<<a[i]<<" ";
i++;
}
cout<<endl;
sum += a[++end];
}
while(sum > NUM)
{
sum -= a[start++];
}
}
getchar();
getchar();
return 0;
}