虎猫冬 2023-07-21 10:13 采纳率: 0%
浏览 28

八皇后同一个代码在不同编辑器结果不同

为什么这个代码输入为8的时候在dev和clion上面都是92,但是在vs上面是2113?

#include<bits/stdc++.h>
using namespace std;
int n, tot = 0;        //n个,总结果
int col[12] = { 0 };
bool check(int c, int r) {    //两个坐标比较
    for (int i = 0; i < r; i++) {
        if (col[i] == c || abs(col[i] - c) == abs(i - r))
            return false;
    }
    return true;
}

void DFS(int r) {
    if (r == n) {    //问题解决
        tot++;
        return;
    }
    for (int c = 0; c < n; c++) {
        if (check(c, r)) {
            col[r] = c;
            DFS(r + 1);
        }
    }

}
int main() {

    int ans[12] = { 0 };
    for (n = 0; n <= 10; n++) {
        memset(col, 0, sizeof(col));
        tot = 0;
        DFS(0);
        ans[n] = tot;
    }
    while (cin >> n) {
        if (n == 0)
            return 0;
        cout << ans[n] << endl;
    }
}


img

  • 写回答

4条回答 默认 最新

  • threenewbee 2023-07-21 10:15
    关注

    memset(col, 0, sizeof(col));
    这个不对
    memset(col, 0, sizeof(int) * sizeof(col));

    评论

报告相同问题?

问题事件

  • 创建了问题 7月21日

悬赏问题

  • ¥15 机器学习预测遇到的目标函数问题
  • ¥15 python的EOFError该怎么解决?
  • ¥15 Fluent,液体进入旋转区域体积分数不连续
  • ¥15 java linux下将docx文件转pdf
  • ¥15 maven无法下载依赖包
  • ¥15 关于pycharm, Callable[[str],bool]作为方法参数使用时, lambda 类型不提示问题
  • ¥15 layui数据重载无效
  • ¥15 寻找了解qq家园纵横四海的程序猿。
  • ¥15 optisystem
  • ¥15 VB.NET画图时的撤销编程