全排列,函数一步搞定
题意:给一两个数n,m;求n个数中有m个1的所有情况
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; int main() { int n,i,x,y; int a[20]; scanf("%d",&n); while(n--) { memset(a,0,sizeof(a)); scanf("%d%d",&x,&y); for(i=x-y;i<x;i++) { a[i]=1; } for(i=0;i<x-y;i++) printf("0"); for(i=x-y;i<x;i++) printf("1"); printf("\n"); while(next_permutation(a,a+x)) { for(i=0;i<x;i++) { printf("%d",a[i]); } printf("\n"); } if(n) printf("\n"); } return 0; }