- sort()----STL的排序函数
复杂度:nlog2(n)-----排序的范围是[first , last)
2.输出组合数
/*输出 1--n 的组合数*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
//cout<<"start"<<endl;
for(int i=0;i<(1<<n);i++){ //从0--(2^n-1)
for(int j=0;j<n;j++){
if(i&(1<<j))
cout<<j+1<<" ";//注意 j+1
}
puts(" ");
}
return 0;
}
- 打印 n 个数中任意 m 个数的组合
/*输出 1--n 的固定个数的组合数*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<(1<<n);i++){ //从0--(2^n-1)
int num=0,kk=i;
while(kk){
kk=kk&(kk-1); //功能是消除kk的二进制数的最右边的1,连续进行此操作,则可以不断消除kk中最右边的1.
num++;
}
if(num==m){
for(int j=0;j<n;j++){
if(i&(1<<j))
cout<<j+1<<" ";
}
puts(" ");
}
}
return 0;
}