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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 安装_weblogic部署Linux

    linux 安装_weblogic部署Linux下载直接去官网下:https://redis.io/download/#redis-downloads快速访问:redis官网通过xftp上传到Linux服务器上,这个应该大家都会。解压文件三、安装C++环境等待下载安装结束,验证:安装成功如图:修改以下两个配置项:1、配置后台运行2、配置允许远程访问文件夹目录下运行到此就运行成功啦~如果在其他服务器访问不到redis,大概率是防火墙没有开放6379端口,解决如下:完毕,谢谢~…

    2022年10月4日
    0
  • java swt griddata_SWT中GridLayout 和GridData的使用

    java swt griddata_SWT中GridLayout 和GridData的使用1.[代码][Java]代码packagecn.haibin.rcp.test.layer;importorg.eclipse.jface.viewers.TableViewer;importorg.eclipse.swt.SWT;importorg.eclipse.swt.layout.GridData;importorg.eclipse.swt.layout.GridLayout;i…

    2022年5月26日
    64
  • linux压缩命令常用:tar,tgz,gzip,zip,rar

    linux压缩命令常用:tar,tgz,gzip,zip,rarlinux压缩命令常用的有三个:tar,tgz,gzip,zip一,tar(一)tar压缩命令tar-cvfexamples.tarfiles|dir#说明:-c,–createcreateanewarchive创建一个归档文件-v,–verboseverboselylistfilesprocessed显示创建归档文件的进程-f,…

    2022年5月9日
    57
  • 嵌入式开发之mipi协议基础学习

    嵌入式开发之mipi协议基础学习MIPI——Mobileindustryprocessinterface多家移动开发或者应用商共同筹划接口标准联盟节约成本,加快产品开发速度内容丰富,显示、照相机、电源管理、射频、存储接口等等CIS(cmosimagesensor)中仅用到了mipi协议中的csi-2(cameraserialinterface二代,标识生成要求)和D-phy

    2022年5月24日
    33
  • Linux 安装nodejs_pe安装linux

    Linux 安装nodejs_pe安装linuxlinux安装Node.js(详细)Node.js安装教程文章目录linux安装Node.js(详细)Node.js安装教程1:下载2:解压3:移动目录1:创建目录2:移动目录并重命名4:设置环境变量5:刷新修改6:安装完成,查看版本号1:下载wgethttps://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz更多版本选择:===》更多nodejs版本下载2:解压tarxfnode-v14.17.4-linux-x64.

    2022年9月12日
    0
  • 用java打印空心菱形_java打印空心直角三角形

    用java打印空心菱形_java打印空心直角三角形打印菱形尤其是空心菱形对于初学者来说有一定难度,熟练掌握了for循环后,还是可以打印出来的分析:1.先打印上半部分,再打印下半部分      2.找准空格与星号之间的关系,然后再打印      3.上半部分每一行数目分别为1、3、5、7、9、7、5、3、1      4.找准关系2*i-1     //练习二:打印菱形与空心菱…

    2022年9月29日
    0

发表回复

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

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