组合生成(int).cpp
来自「生成序列的所有组合」· C++ 代码 · 共 36 行
CPP
36 行
//全排列生成
#include<iostream.h>
#define n 9
#define true 1
#define false 0
int s[n],ans[n],count=0;
int used[n]={0};
void solve(int dep,int r)
{
int i,j=dep;
if(dep==r+1) //找到一个组合
{
for(i=1;i<=r;i++)
cout<<ans[i]<<ends;
cout<<endl;
count++;
return;
}
for(i=1;i<=n;i++)
{
if(!used[i]&&ans[j-1]<i)
{
ans[j]=i;
used[i]=true;
solve(dep+1,r); //递推
used[i]=false;
}
}
return;
}
void main()
{
solve(1,4); //初始递推深度为1
cout<<count<<endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?