朕想知道
尔达的范围
1
1
zxzd
00000000000000000
加油
I want
真想知道
朕想知道
朕想知道
朕想知道
chunchun2017 发表于 2017-8-27 18:29
你这是递归啊,说是回溯法,其实也还是递归,还以为是非递归方式实现的呢
用python语句,递归瞬间搞定,
很显然,这一版论坛是在讨论c而不是python,你说的python代码也没有意义啊{:10_277:}
朕想知道
6
朕想知道
1
自己乱写了一些
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NUM 8
void queen(int checkerboard,int rank,int row);
int main(void)
{
int checkerboard;
memset(checkerboard,1,sizeof(checkerboard));
//第一个棋子摆放的位置
for(int i=0;i<NUM;i++)
{
for(int j=0;j<NUM;j++)
{
queen(checkerboard,i,j);
}
}
}
void queen(int checkerboard,int rank,int row)
{
if(checkerboard==1)
{
checkerboard=0;
for(int i=0;i<NUM;i++)
{
checkerboard=2;
checkerboard=2;
if(rank-i>0&&row-i>0)
{
checkerboard=2;
}
else if(rank+i<NUM&&row+i<NUM)
{
checkerboard=2;
}
else if(rank+i<NUM&&row-i>0)
{
checkerboard=2;
}
else if(rank-i>0&&row+i<NUM)
{
checkerboard=2;
}
}
}
else
{
if(rank<NUM&&row<NUM)
{
row++;
queen(checkerboard,rank,row);
}
else if(rank<NUM)
{
row=0;
rank++;
queen(checkerboard,rank,row);
}
else
{
exit(1);
}
}
for(int i=0;i<NUM;i++)
{
for(int j=0;j<NUM;j++)
{
printf("%d",checkerboard);
}
putchar('\n');
}
}
朕想知道
朕想知道