穷举所有排列

#include <iostream>

char a[9] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'};
int n;

void output();
void swap(int m, int n);
void search(int m);


int main()
{
    std::cin >> n;
    search(0);
    return 0;
}

void search(int m)
{
    if(m==n)
    {
        output();
    }
    
    else
    {
        for (int i = m; i < n;i++)
        {
            swap(m, i);
            search(m + 1);
            swap(m, i);
        }
    }
    
}

void output()
{
    for (int i = 0; i < n;i++)
    {
        std::cout << a[i];
    }
    std::cout << std::endl;
}

void swap(int m,int n)
{
    int tmp;
    tmp = a[m];
    a[m] = a[n];
    a[n] = tmp;
}

 

全部评论

相关推荐

02-07 10:52
复旦大学 Java
混子不想混:非常能理解,感觉他们就靠着入行早,打压新人一样。我这个公司也是,天天干的累死累活,然后绩效打C,合着让新人被绩效,像是年底攒棺材本一样。总是打击之后,还会让人开始自我怀疑,是不是我努力的还不够,实际上并不是,就是他们不做人,故意打压新人。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务