C语言最笨的八皇后有关问题,哪错了
C语言最笨的八皇后问题,哪错了?
输入为先输入一个n,然后再输入n个数,分别为第几个解。
输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数b(1 <= b <= 92)
输出数据 输出有n行,每行输出对应一个输入。输出应是一个正整数,是对应于b的皇后串。
输入示例 2 1 92
输出示例 15863724 84136275
我的代码如下:
输入为先输入一个n,然后再输入n个数,分别为第几个解。
输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数b(1 <= b <= 92)
输出数据 输出有n行,每行输出对应一个输入。输出应是一个正整数,是对应于b的皇后串。
输入示例 2 1 92
输出示例 15863724 84136275
我的代码如下:
#include <stdio.h>
int yige(int a[8]) //用于判断该数列是不是解
{
int i,j;
for(j=0;j<8;j++)
for(i=0;i<8;i++)
if(a[j] == a[i] || abs(j-i) == abs(a[j]-a[i])) return 0;
return 1;
}
void jisuan(int b[92][8]) //计算出所有解
{
int i,j,k,g;
int flag;
int a[8]={0};
int count[8]={0};
int test;
for(count[0]=0;count[0]<8;count[0]++) /*对数列做排列组合,把所有情况列举出来,
在判断是不是解,即从00000000-77777777都
算一遍*/
{
for(count[1]=0;count[1]<8;count[1]++)
{
for(count[2]=0;count[2]<8;count[2]++)
{
for(count[3]=0;count[3]<8;count[3]++)
{
for(count[4]=0;count[4]<8;count[4]++)
{