uva-729 - The Hamming Distance Problem-全排列

全排列,函数一步搞定

题意:给一两个数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;
}


你可能感兴趣的:(permutation,distance)