题解 | #和为S的连续正数序列#
和为S的连续正数序列
http://www.nowcoder.com/practice/c451a3fd84b64cb19485dad758a55ebe
公式法:
class Solution {
public:
vector<vector<int> > FindContinuousSequence(int sum) {
vector<vector<int>>res;
if(sum<=0) return res;
for(int i=2;func(i)<sum;i++)
{
if((sum-func(i))%i==0)
{
int n=(sum-func(i))/i;
vector<int> tmp;
for(int j=0;j<i;j++)
{
tmp.push_back(n+j);
}
res.push_back(tmp);
}
}
reverse(res.begin(),res.end());
return res;
}
int func(int i)
{
return i*(i-1)/2;
}
};