飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3642|回复: 3

【C】超短代码展现8皇后问题所有解——美工过

[复制链接]

该用户从未签到

发表于 2011-2-18 15:28:57 | 显示全部楼层 |阅读模式
效果如下:
8皇后.jpg
代码:
  1. #include<stdio.h>
  2. #define p printf
  3. int a[39];
  4. void show(int j){
  5.         for(int k=0;k<9;++k){
  6.                 if(k==a[j])p("☆");
  7.                 else p("■");}
  8.         p("\n");
  9. }
  10. void main(int i,int j)
  11. {
  12.         for(j=9;--j;i>8?(j>1?show(j):
  13.         (show(j),p("---------\n")))
  14.         :(a[j]|a[j+i+7]|a[j-i+31])
  15.         ||(a[j]=a[j+i+7]=a[j-i+31]=i,main(i+1,j),
  16.         a[j]=a[j+i+7]=a[j-i+31]=0));
  17. }
复制代码
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-9-12 22:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2011-2-28 16:33:08 | 显示全部楼层
    用int main()吧~
    算法不错!赞一个!看到这个算法,至少我到现在还没想到更好的!呵呵!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-4-28 13:48:46 | 显示全部楼层
    虽然是三年前的贴,但是大哥国际象棋是8*8滴
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2019-3-1 23:51
  • 签到天数: 559 天

    [LV.9]以坛为家II

    发表于 2015-5-25 17:37:15 | 显示全部楼层
    真的是很精简的代码,很经典的算法题。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表