八皇后问题!
c语言吧
全部回复
仅看楼主
level 3
妖__神 楼主
1L度娘
2011年09月28日 17点09分 1
level 3
妖__神 楼主
请问我哪里错了?
2011年09月28日 18点09分 3
level 7
2011年09月29日 03点09分 4
level 3
妖__神 楼主
坑爹啊你?
2011年09月29日 03点09分 5
level 7
写的很乱额
2011年09月29日 04点09分 6
level 3
妖__神 楼主
、、、啧啧啧 新人 还在学习中~
2011年09月29日 04点09分 7
level 7
你可以分成几个来写把
比如数组 int ar[9]; 来保存结果
ar[i] 表示 (i,ar[i]) 坐标的皇后位置。
如果那个坐标上有别的皇后的话
那就是 0 < j < i 时候 出现
i) ar[j] == ar[i]
ii) abs(j-ar[j]) == abs(i-ar[i])
然后就是递归部分
void recusion(int step)
{
___if (step == 9) retuen;
___for(int i=1;i<=8;i++)
______if (check....) recusion //进入下一个循环
}
2011年09月29日 07点09分 8
level 3
妖__神 楼主
完全没必要~ 问题已经解决了 我只是忘了重置queen而已~
2011年09月29日 10点09分 9
level 6
lz

for (int m=12345678;m<=87654321;m++) //12345678-87654321中的数
可以把循环步长优化为9,下面就不用考虑有9和0出现了。如:
for (int m=12345678;m<=87654321;m=m+9)。
2011年09月29日 11点09分 10
level 3
妖__神 楼主
8皇帝 不是9皇帝...
2011年09月29日 14点09分 11
level 6
我说的就是8皇后...
[12345678,87654321]范围区间中1~8的任意一个排列的数字和为9的倍数,即数字1~8的任意一个排均为9的倍数,所以可以优化循环步长...
2011年09月29日 14点09分 12
level 6
我光盘有源码,可惜光驱坏了。
2011年09月29日 16点09分 13
level 11
皇帝控制范围没那么大吧...
2011年09月29日 17点09分 14
level 9
2011年09月29日 17点09分 15
level 7
若果不限制C的话
可以用std::stack直接模拟更好
2011年10月01日 07点10分 16
level 1
[Yeah]八皇后啊八皇后,八皇帝啊八皇帝!
2011年10月01日 16点10分 17
level 3
妖__神 楼主
嗯~~ 不错的建议~~~
2011年10月05日 16点10分 18
level 9
八皇后不用回朔?蛋疼啊
2011年10月05日 18点10分 19
level 3
妖__神 楼主
你指的递归吧,我只是试下这种方法而已。。 而且问题解决了 该贴可以删了!!
2011年10月06日 14点10分 20
1