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



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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • slam技术研究现状_SLAM uav

    slam技术研究现状_SLAM uav导语:被很多学者认为是实现真正全自主移动机器人关键的SLAM技术,已经开始逐步走入人们的视野,过去几年扫地机器人的盛行让它名声大燥,而AGV、无人机等行业的兴起则让其找到了更加广阔的市场。今天,我们就来聊一聊现下大热的SLAM技术。被很多学者认为是实现真正全自主移动机器人关键的SLAM技术,已经开始逐步走入人们的视野,过去几年扫地机器人的盛行让它名声大燥,而AGV、无人机等行业的…

    2022年10月1日
    2
  • keil5安装教程简单易上手

    keil5安装教程简单易上手keil5安装教程简单易上手首先对于开发ARM系列MCU来说常用MDK来进行开发废话不多说。文章最后含F0-F7系列pcak包链接1.下载keil5安装包(内含pack包)链接:https://pan.baidu.com/s/1wUH3K-0bxkLhKcDaL92X5A提取码:mnjb2.安装keil5(1).下载打开安装内容分别为如下如果没看见破解机请解压里面的key压缩包(2).打开安装包界面如下(3).先勾选协议在点击NEXT(4).建议不要安装系统盘自行

    2022年5月23日
    65
  • Servlet和JSP的交互方式[通俗易懂]

    Servlet和JSP的交互方式[通俗易懂]文章目录Servlet和JSP的交互方式Servlet:jsp:1.表单:2.超链接超链接3.forward:获取参数值request.getParameter(“id”)处理乱码newString(request.getParameter(“name”).getBytes(“ISO8859_1″),”UTF-8”)Servlet和JSP的交互方式Servlet:1.request.getRequestDispatcher(“url”).forward(requsest,response);这个是

    2022年6月22日
    24
  • vb程序设计教程第4版龚沛曾 实验答案解析

    vb程序设计教程第4版龚沛曾 实验答案解析这里只是个人对书中题目的解答,并不代表最优代码。仅供参考。有哪里错误或者不足的地方还望指出,Thanks♪(・ω・)ノ以及不要脸地求探讨求点赞。嘿嘿这里使用的是《vb程序设计教程(第四版)——龚沛曾》:实验3(主要考察分支选择结构。1—7考察select和if语句,8用到choose函数,9—11以控件option和check为主)3.1:OptionExpl…

    2022年10月7日
    2
  • AttributeCollection类与Attributes.Add方法的使用[通俗易懂]

    AttributeCollection类与Attributes.Add方法的使用[通俗易懂]控件属性集合:AttributeCollection类AttitudeCollection隶属于namespaceSystem.Web.UI命名空间。AttributeCollection类属于集合类,具有其他集合所共有的一些属性。AttributeCollection类用来封装服务器控件的所有属性,可实现对服务器属性集合的添加和删除。控件的属性包括颜色、样式、名称等,这些属性都可以通过At

    2022年9月26日
    1
  • node版本如何升级

    node版本如何升级YouareusingNodev8.4.0,butthisversionofvue-clirequiresNode&amp;amp;amp;amp;gt;=8.9.PleaseupgradeyourNodeversion.然后再用node-v,发现在本地的node版本是v8.4.0,有点老了,要升级了。可是,node怎么升级呢?有点慌…

    2022年7月16日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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