//给你m个数,输出其中包含n个数的所有排列
#include <iostream>
using namespace std;
int data[100];
void DPpl(int num,int m,int n,int depth)
{
if(depth==n)
{
for(int i=0;i<n;i++)
cout<<data[i]<<" ";
cout<<endl;
}
for(int j=0;j<m;j++)
{
if((num&(1<<j))==0)
{
data[depth]=j+1;
DPpl(num+(1<<j),m,n,depth+1);
}
}
}
int main()
{
//DPpl(0,5,1,0);
//DPpl(0,5,2,0);
DPpl(0,5,3,0);//5个数输出包含其中3个数的排列
//DPpl(0,5,4,0);
//DPpl(0,5,5,0);
return 0;
}
程序不长,是我以前帮别人写的。
在我空间里面有不过程序就是上面的。
http://hi.baidu.com/huifeng00/blog/item/cd01b0152e69f503c93d6d8f.html
2019-07-17 22:55:21