寫的非常好 很容易理解
void Sum(int sum, std::vector<int> &v)
{
if(sum == 0)
{
vector<int>::iterator ite;
for(ite = v.begin(); ite != v.end(); ++ite)
{
cout << *ite <<" ";
}
cout << endl;
}
else
{
for(int i = 1; i <= sum ; ++i)
{
if(0==v.size()||i>=v[v.size()-1])
{
v.push_back(i);
Sum(sum-i,v);
v.pop_back();
}
}
}
}