博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8皇后
阅读量:4364 次
发布时间:2019-06-07

本文共 1330 字,大约阅读时间需要 4 分钟。

#include<stdio.h>

#include<math.h>
int x[100],j;
int w;
int a(int b,int c)
{
int n;
n=b-c;
if(n==0)
return 0;
if(n>0)
return n;
else
return -n;
}
bool place(int k)
{
int i;
for(i=1;i<k;i++)
if(x[k]==x[i]||a(k,i)==a(x[k],x[i]))
return false;
return true;//判断真假,FALSE=0,TRUE=1
}

void queen(int n)//返回值为空

{

int i,k;
for(i=1;i<=n;i++)
x[i]=0;
k=1;
while(k>=1)
{
x[k]=x[k]+1;
while(x[k]<=n&&!place(k))
x[k]=x[k]+1;
if(x[k]<=n&&k==n)
{
for(i=1;i<=n;i++)
{
printf("第%d列%d ",i,x[i]);
}
printf("\n");
w=w+1;
}
else if(x[k]<=n&&k<n)
{
k=k+1;
}
else
{
x[k]=0;
k=k-1;
}
}
}

int main()

{
int n;
printf("皇后个数n:\n");
scanf("%d",&n);
queen(n);
printf("总数%d",w);
}

#include<stdio.h>

#include<math.h>
int x[100],j;
int w;
int a(int b,int c)
{
int n;
n=b-c;
if(n==0)
return 0;
if(n>0)
return n;
else
return -n;
}
bool place(int k)
{
int i;
for(i=1;i<k;i++)
if(x[k]==x[i]||a(k,i)==a(x[k],x[i]))
return false;
return true;
}

void queen(int n)

{

int i,k;
for(i=1;i<=n;i++)
x[i]=0;
k=1;
while(k>=1)
{
x[k]=x[k]+1;
while(x[k]<=n&&!place(k))
x[k]=x[k]+1;
if(x[k]<=n&&k==n)
{
for(i=1;i<=n;i++)
{
printf("第%d列%d ",i,x[i]);
}
printf("\n");
w=w+1;
}
else if(x[k]<=n&&k<n)
{
k=k+1;
}
else
{
x[k]=0;
k=k-1;
}
}
}

int main()

{
int n;
printf("皇后个数n:\n");
scanf("%d",&n);
queen(n);
printf("总数%d",w);
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

我也不知道改写什么

 

转载于:https://www.cnblogs.com/chenyuliu/p/5815044.html

你可能感兴趣的文章
玩转Android之加速度传感器的使用,模仿微信摇一摇
查看>>
Android 菜单(OptionMenu)大全 建立你自己的菜单
查看>>
Linux驱动开发常用头文件
查看>>
Linux虚机安装配置Tomcat
查看>>
[LeetCode]Find Minimum in Rotated Sorted Array
查看>>
CentOS 7安装redis及php扩展
查看>>
大龄程序员怎样渡过中年危机?(转)
查看>>
浅谈算法和数据结构: 七 二叉查找树
查看>>
Hbuilder MUI 下拉选择与时间选择器
查看>>
MyBatis 入门到精通(二) SQL语句映射XML文件
查看>>
mysql查询优化之一:mysql查询优化常用方式
查看>>
MyBatis ResultMap(2)
查看>>
JavaScript学习第一天(一)
查看>>
C语言基础小斋
查看>>
《Two Dozen Short Lessons in Haskell》(二十)分数
查看>>
Azure IoT Hub和Event Hub相关的技术系列-索引篇
查看>>
《做中学》读后有感
查看>>
Android 网络状态的监控
查看>>
CentOS Vi编辑器
查看>>
Vue.Draggable 文档总结
查看>>