输入两个整数n和m,从数列1,2,3...,n中随意取几个数使其和等于m,要求将其中所有可能都列出来。
#include <iostream>
using namespace std;
void sumOfSubArray(int m, int n){
if(m<0 || n<1)
return;
int sum = 1;
for(int i = 1, j = 1; j < n;){
if(sum<m)
sum+=++j;
else if(sum>m)
sum-=i++;
else{
for(int k = i; k <= j; ++k)
cout<<k<<' ';
cout<<'\n';
sum+=++j;
}
}
}
int main(){
sumOfSubArray(15,20);
system("PAUSE");
return 0;
}