您的位置:首页 > 其它

数字的排列与组合

2017-02-16 15:53 190 查看
组合

例如:

需要从1-7数字中选出5个进行组合,并按有小到大输出.

#include<iostream>
using namespace std;
int a[8],b[8];
void print()
{
for (int i=1;i<=5;i++)
cout<<a[i];
cout<<endl;
}
void dfs(int index)
{
if (index==8)
{
print();
return;
}
for (int i=a[index-1]+1;i<=7;i++)
{
if (b[i]==0)
{
b[i]=1;
a[index]=i;
dfs(index+1);
b[i]=0;
}
}
}
int main()
{
dfs(1);
return 0;
}


全排列

例如对于1-5进行全排列,并按由小到大输出

#include<iostream>
using namespace std;
int a[8],b[8];
void print()
{
for (int i=1;i<=5;i++)
cout<<a[i];
cout<<endl;
}
void dfs(int index)
{
if (index==6)
{
print();
return;
}
for (int i=1;i<=5;i++)
{
if (b[i]==0)
{
b[i]=1;
a[index]=i;
dfs(index+1);
b[i]=0;
}
}
}
int main()
{
dfs(1);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: