求助

┏ (^ω^)=☞智商未成年 2020-12-27 11:46:52
8*8棋盘放置五个皇后,依次打印65个独立解的代码实现,有哪位大神能帮帮我吗
...全文
44 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 赵4老师的回复:
仅供参考:
#include <stdio.h>
int d[8][8];
int n;
void queen8(int L) {
    int x,y;

    if (8==L) {
        n++;
        printf("%d\n",n);
        for (y=0;y<8;y++) {
            for (x=0;x<8;x++) {
//              printf("%d",d[y][x]);
                if (d[y][x]) printf("■");
                else         printf("□");
            }
            printf("\n");
        }
        return;
    }
    for (x=0;x<8;x++) {
        for (y=0;y<L;y++) {
            if  (              d[y][x      ]
             || (x-(L-y)>=0 && d[y][x-(L-y)])
             || (x+(L-y)< 8 && d[y][x+(L-y)]))
                break;
        }
        if (y>=L) {
            d[L][x]=1;
            queen8(L+1);
            d[L][x]=0;
        }
    }
}
int main() {
    int y,x;
    for (y=0;y<8;y++) {
        for (x=0;x<8;x++) {
            d[y][x]=0;
        }
    }
    queen8(0);
    return 0;
}
感谢老师的帮助😊
赵4老师 2020-12-28
  • 打赏
  • 举报
回复
仅供参考:
#include <stdio.h>
int d[8][8];
int n;
void queen8(int L) {
    int x,y;

    if (8==L) {
        n++;
        printf("%d\n",n);
        for (y=0;y<8;y++) {
            for (x=0;x<8;x++) {
//              printf("%d",d[y][x]);
                if (d[y][x]) printf("■");
                else         printf("□");
            }
            printf("\n");
        }
        return;
    }
    for (x=0;x<8;x++) {
        for (y=0;y<L;y++) {
            if  (              d[y][x      ]
             || (x-(L-y)>=0 && d[y][x-(L-y)])
             || (x+(L-y)< 8 && d[y][x+(L-y)]))
                break;
        }
        if (y>=L) {
            d[L][x]=1;
            queen8(L+1);
            d[L][x]=0;
        }
    }
}
int main() {
    int y,x;
    for (y=0;y<8;y++) {
        for (x=0;x<8;x++) {
            d[y][x]=0;
        }
    }
    queen8(0);
    return 0;
}

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧