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)
上一篇 2026年4月18日 下午8:40
下一篇 2026年3月12日 下午8:22


相关推荐

  • Werkzeug_vuze怎么用

    Werkzeug_vuze怎么用原文链接:http://werkzeug.pocoo.org/docs/tutorial/欢迎来到Werkzeug教程,这里我们将会创建一个仿制TinyURL的应用,将URLs存储到一个redis实例。为了这个应用,我们将会使用的库包括,用于模板的Jinja2、用于数据库层的redis和用于WSGI层的Werkzeug。你可以使用pip安装需要的库:[plai

    2022年10月7日
    3
  • 基于arduino的光控窗帘_基于Arduino系统的智能窗帘设计与实现.doc

    基于arduino的光控窗帘_基于Arduino系统的智能窗帘设计与实现.doc摘要:跟随社会发展的潮流,现代科学技术正处于快速发展阶段,人们对智能家居的关注度也越来越高,人们开始寻求更加智能和舒适的生活及办公环境。智能遥控属于电子与信息工程的一个重要分支,在现代智能家居中有着良好的发展前景。本设计采用Arduino单片机来控制智能窗帘系统,实时监测室内温湿度情况并在LCD上显示,使用了红外遥控的技术,可以切换不同的工作模式从而来切换其控制方式,实现半自动控制、自动控制以及远…

    2022年6月23日
    34
  • ubuntu命令行安装deb_ubuntu命令行安装deb软件

    ubuntu命令行安装deb_ubuntu命令行安装deb软件1、下载需要安装的deb包,输入以下命令安装:$sudodpkg-ipackage.deb2、查看package.deb包中的内容:$dpkg-cpackage.deb3、从package.deb包中提取信息:$dpkg-Ipackage.deb4、移除安装的deb包:$dpkg-rpackage5、…

    2022年10月21日
    6
  • nginx面试常见问题[通俗易懂]

    nginx面试常见问题[通俗易懂]Nginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯、淘宝、百度、京东、新浪、网易等等。Nginx是网页服务器运维人员必备技能之一,下面为大家整理了一些比较常见的Nginx相关面试题,仅供参考:1、请解释一下什么是Nginx?Nginx是一个web服务器和反向代理服务器,用于HTTP、HTTPS、SMTP、P…

    2022年8月27日
    7
  • 讯飞写作

    讯飞写作

    2026年3月14日
    3
  • LinkedHashSet去重方法「建议收藏」

    LinkedHashSet去重方法「建议收藏」第二种(mCopyDatas为当前页数据,deals为总数据)LinkedHashSetmFiltSet=newLinkedHashSet();//用于确定数据唯一,过滤重复数据if(mPage==1){mFiltSet.clear();this.mDatas.clear();this.isRefresh=false;}//select=thi

    2022年10月12日
    5

发表回复

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

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