ITPub博客

首页 > 应用开发 > IT综合 > 算法几个数之和是某个数

算法几个数之和是某个数

原创 IT综合 作者:dongyu2013 时间:2014-04-18 10:09:07 0 删除 编辑

输入两个整数  n  和  m,从数列 1,2,3.......n  中  随意取几个数,
使其和等于  m ,要求将其中所有的可能组合列出来


n小于m/2

点击(此处)折叠或打开

  1. vector<int> list1; //01背包问题

  2. void find_factor(int sum, int n)
  3. {
  4.    if(n<=0||sum<0)
  5.    {
  6.      return;
  7.    }
  8.    if( sum==0 )
  9.    {
  10.        for(vector<int>::iterator iter=list1.begin(); iter<list1.end()-1; iter++)
  11.        {
  12.          cout<<*iter<<\"+\";
  13.        }
  14.      cout<<*iter++;
  15.      cout<<endl; //后置++的运算符的优先级高于*
  16.      return;
  17.    }
  18.    list1.push_back(n);
  19.    find_factor(sum-n, n-1);
  20.    list1.pop_back();
  21.    find_factor(sum, n-1);
  22. }

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29012686/viewspace-1144537/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-12-25

  • 博文量
    263
  • 访问量
    238073