
RT,我在 VScode 中编写了这样一段代码:
/*枚举的对象:对角线*/
#include <bits/stdc++.h>
using namespace std;
int n, m, ans;
int vis[40 + 10];
void dfs(int k) //枚举对象,对角线编号,min = 2, max = n + m
{
    ans = max(ans, k - 2);
    if (k > n + m)
        return;
    for (int x = 1; x <= k - 1; x++) //按行(x)枚举
    {
        int y = k - x; // x + y = k (对对角线编号的定义)
        if (x < 1 || x > n || y < 1 || y > m)
            continue;                  //判断是否越界
        else if (vis[x - y + 20] == 1) //判断另一条对角线是否被占用
            continue;                  //标记另一条对角线已被占用
        vis[x - y + 20] = 1;
        dfs(k + 1);
        vis[x - y + 20] = 0;
    }
}
int main()
{
    cin >> n >> m;
    dfs(2); //从 2 到 n + m
    cout << ans << endl;
    return 0;
}
输入3 4后,没有任何返回值,似乎是死循环
在 Dev-C++上编译正常,在VScode上运行其他代码正常
求帮助