C/C++回溯经典练习:N皇后问题

题目描述
在一个nXn的国际象棋棋盘上放置n(n<=12)个皇后,使它们不能互相攻击(即任意两个皇后不能在同一行、同一列或同一对角线上)。试求出所有方法。

输入
输入一个数n .(n<=12)

输出
输出所有的排列方案总数。

样例输入
4

#include<iostream>
#include<cmath>
using namespace std;
int n,ans,a[14];
void dg(int x)
{
	if(x>n)
	{
		ans++;
		/*for(int i=1;i<=n;i++)
		{
			cout<<a[i]<<" ";
		}
		cout<<endl;
		return ;*/
	}
	else
	{
		for(int j=1;j<=n;j++)
		{
			bool f=true;
			for(int i=1;i<x;i++)
			{
				if(x-i==abs(j-a[i])||a[i]==j)
				{
					f=false;
					break;
				}
			}
			if(f!=false)
			{
				a[x]=j;
				dg(x+1);
			}
		}
	}
}
int main()
{
	cin>>n;
	dg(1);
	cout<<ans;
	return 0;
}
当前版本:5.6.8.7 软件语言:中文 软件类别:输入法 软件大小:19.12 MB 适用固件:1.5及更高固件 内置广告:没有广告 适用平台:Android 由CooTek打造的全新触宝中文手机输入法正式登陆Android平台!智能全拼整句输入、中英文无切换混合输入、快速下滑输入符号数字、一键切换英文精确输入、智能调整候选词优先级、笔画输入支持基于语境的预测、多种特定模式支持以及强大的按键纠错功能等一系列创新设计让您的手机输入比电脑更流畅! 1.支持的输入方式 拼音词组输入、笔画输入、智能英文输入、英文字母输入、符号输入、数字输入 2.特色功能 支持智能全拼整句输入(独创) 支持中英文混合输入(独创) 支持全键盘布局下的智能按键纠错(独创) 支持快速下划输入符号、数字,在设置页面勾选“下划输入符号”选项(默认开启)(独创) 支持拼音输入下一键切换到英文精确输入(独创) 多种特定模式支持,包括:网址模式、电子邮件模式、数字模式、密码模式等 笔画输入支持常用部首下划快速输入 笔画输入支持基于语境的预测功能(推荐) 笔画输入支持智能预测短语或句子(推荐) 笔画输入支持通配符 支持英文预测输入,在设置页面点击“智能输入”,勾选“单词预测”选项(默认开启) 英文输入支持上划输入大写字母 英文输入支持快速输入缩写,输入时可省略缩写中的符号(该功能仅在单词预测功能开启时有效) 英文输入支持快速输入相关词,只需按压并下划候选词,在设置页面点击“智能输入”,勾选“联想词”选项(默认开启)(独创) 支持复制、剪切、粘贴和删除等编辑功能(推荐)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值