题解 | #和为S的连续正数序列#
和为S的连续正数序列
http://www.nowcoder.com/practice/c451a3fd84b64cb19485dad758a55ebe
数学方法
public:
vector<vector<int> > FindContinuousSequence(int sum) {
int sumn = 1;
double num = 2.0, ret = 1.1,temp;
vector<vector<int>> vec;
vector<int> tem;
if(sum<3){
return vec;
}
while (ret > 0) {
temp=sum - sumn;
ret =temp / num;
if (abs(ret - ceil(ret)) == 0 && ret>0) {
for (int i = 0; i < num; i++) {
tem.push_back(ret + i);
}
vec.push_back(tem);
tem.clear();
}
num++;
sumn = sumn + (num - 1);
}
sort(vec.begin(),vec.end(),[](vector<int> a,vector<int> b){
return a[0]<b[0];
});
return vec;
}
};