N皇后问题_Java递归解决N皇后问题

N皇后问题_Java递归解决N皇后问题18124 N皇后问题时间限制:2000MS 内存限制:65535K提交次数:0通过次数:0题型:编程题   语言:G++;GCC;VCDescription有N*N的国际象棋棋盘,要求在上面放N个皇后,要求任意两个皇后不会互杀,有多少种不同的放法?输入格式每一个数为T,代表CASE的数量,T<=13此后,每行一个数N(13>=N>0)

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用


  
  
  

18124 N皇后问题

时间限制:2000MS  内存限制:65535K 提交次数:0 通过次数:0

题型: 编程题   语言: G++;GCC;VC

Description

有N*N的国际象棋棋盘,要求在上面放N个皇后,要求任意两个皇后不会互杀,有多少种不同的放法?

输入格式

每一个数为T,代表CASE的数量,T<=13
此后,每行一个数N(13>=N>0)


输出格式

每一个CASE,输出对应答案


输入样例

2
4
5

输出样例

2
10



//排列问题  关键在于  while( n-- ) {  if(**) 递归 ;}  if是为了适应特殊要求的数字序列
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <iostream>
using namespace std;

void All(int T[],int n,int cur ,int &a)    //cur 代表 第cur+1 列   共n列  
{


    if(cur==n) a++;   //cur==n 说明有一个符合要求的数字序列
    else for(int i=0;i<n;i++)
    {


        int sig=1;
        for(int j=0;j<cur;j++) if(T[j]==i) {sig=0;break;} //用来限制 数字序列不在同一行
        for(int j=0;j<cur;j++) if(abs(i-T[j])==abs(cur-j)) {sig=0;break;}//第j列 不会和 第cur列 斜杀
        if(sig)//符合两个条件 才进行 下一列的 递归
        {


            T[cur]=i;
            All(T,n,cur+1,a);
        }
    }
}

int main()
{


    int n,m,T[13],Count;
    cin>>n;
    while(n--)
    {


        cin>>m;
        Count=0;//共有多少可能  初始化 0
        All(T,m,0,Count);
        cout<<Count<<endl;
    }
}



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187685.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 怎么更改wifi频段_wifi信道和频段怎么设置?「建议收藏」

    怎么更改wifi频段_wifi信道和频段怎么设置?「建议收藏」现在基本上每家都有无线路由器,在家里我们用手机一搜WIFI,就是几个甚至几十个,WIFI信号相互之间会有相互的干扰,当周围的很多无线路由器发射的信号在同一个信道的时候,干扰更为严重,影响到了我们的WiFi性能和网速的体验,甚至出现频繁的掉线情况。无线网络信号在空气中传播频率范围通常是2.4~2.4835GHz,但是这些频段被分为了11或13个信道,我们一般家里用的都有13个信道可以选择。通常情况下…

    2022年10月20日
  • h5学习笔记:vuethink 配置

    h5学习笔记:vuethink 配置

    2021年10月13日
  • 详解第一范式、第二范式、第三范式、BCNF范式

    详解第一范式、第二范式、第三范式、BCNF范式文章目录第一范式定义以及分析:问题研究:第二范式必备知识点函数依赖:码:非主属性:定义分析:解决办法:问题研究:第三范式:定义:分析:问题研究:BCNF范式分析问题研究小结:第一范式定义以及分析:首先是第一范式(1NF)。符合1NF的关系(你可以理解为数据表。“关系模式”和“关系”的区别,类似于面向对象程序设计中”类“与”对象“的区别。”关系“是”关系模式“的一个实例,你可以把”关系”理解…

  • oracle中更改表名称,oracle中修改表名的几种方式[通俗易懂]

    oracle中更改表名称,oracle中修改表名的几种方式[通俗易懂]answer1:ALTERTABLEold_table_nameRENAMETOnew_table_name;(大写为系统命令)answer2:sql>selecttnamefromtab;@H_404_7@TNAME@H_404_7@——————————@H_404_7@TEST@H_404_7@@H_404_7@sql>…

  • C语言学习——函数(含递归)

    C语言学习——函数(含递归)一、函数的几点说明:(1) 一个源文件由一个或者多个函数组成。(2) 一个C程序由一个或者多个源文件组成。(3) C程序的执行从 main 函数开始。(4) 所有的子函数都是平行的。(5) 从用户的角度看,函数分库函数和自定义函数。(6) 函数形式:①无参函数:主调函数无数据传送给被调函数,可带或不带返回值。②有参函数:主调函数与被调函数间有参数传递,主调函数可将实参传送给被调函数…

  • idea免费激活码-激活码分享

    (idea免费激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9071407CR5-eyJsaWNlbnNlSWQiOi…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号