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

老子的全排列呢

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);
}



全部评论

相关推荐

09-19 13:59
门头沟学院 Java
用微笑面对困难:Trae一下,如果真成了,他用了直接发字节起诉代码版权,,这个代码不商用是没问题的如果没成也是情理之中的。
点赞 评论 收藏
分享
10-29 18:20
济南大学 Java
王233:名字说一下
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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