题解 | #老子的全排列呢#

老子的全排列呢

https://ac.nowcoder.com/acm/problem/15128

内容持续更新欢迎,互关> https://ac.nowcoder.com/acm/contest/profile/453623014 ○| ̄|_

#include<bits/stdc++.h>
using namespace std;

int a[10],b[10];

void dfs(int num)
{//正如下面的说的,num的数值代表从1开始遍历,遍历到了某一组的第几个数字了
    if(num>8)
    {
        for(int i=1;i<=8;i++)cout<<a[i]<<' ';cout<<endl;
        //输出完要return,要不然就死循环了,永无出头之日
        return ;
    }
    for(int i=1;i<=8;i++)
    {//如果i这个数字在这一组中还没有被用过
        if(b[i]==0)
        {
        	//把i某一组数字的第num个位置上
            a[num]=i;
            //用过之后标记一下,表示不能再用了 
            b[i]=1;
            dfs(num+1);
            //用完之后标记0,表示用完了,下次可以继续用了
            b[i]=0;
        }
    }
}

int main()
{//从第一个数开始遍历(第一个数不一定是1,上面的那个num是代表处理的某一组的第几个数字
    dfs(1);
}



全部评论

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务