组合数的简单求法(dfs)

组合数的具体应用可以参考这个例子:https://www.cnblogs.com/FengZeng666/p/10496223.html

下面这段代码可以作为求组合数的固定套路或者公式

 #include<iostream>
 #include<cstring>

 using namespace std;

 ;
 ];

 void dfs(int step, int n, int m)    //从n个数里面选出m个,存入一维数组a
 {
     ))
     {
         ++sum;    //组合总数
         ; i <= m; ++i)
             cout << a[i] << " " ;    //所有组合
         cout << endl;
         return;
     }
     else
     {
         ; i <= n; i++)
         {
             //保证取得的这5个数大小是递增的,避免重复取
             ])
             {
                 a[step] = i;    //使用数组a保存已经取出的数,下标0不用
                 dfs(step + , n, m);
             }
         }
     }
 }

 int main()
 {
     memset(a, , sizeof(a));
     cout << "所有组合为:" << endl;
     dfs(, , );
     cout << endl;
     cout << "共有" << sum << "种组合" << endl;

 }
上一篇:面试的妹纸问我:web缓存设置不是后台的事情吗?


下一篇:Nginx 静态资源缓存设置