这个代码有什么不对了?60分(不是洛谷的)
#include <iostream>
using namespace std;
struct Node
{
int x, y, k;
bool t;
};
int n;
int ans[15][15];
void dfs(Node s)
{
if (s.x == n && s.y == n)
{
return ;
}
s.k++;
if (s.x == n && s.y == 1 && !(s.x & 1))
{
s.y++;
s.t = !s.t;
ans[s.x][s.y] = s.k;
dfs(s);
}
else if ((s.y == 1 || s.y == n) && !(s.x & 1))
{
s.x++;
s.t = !s.t;
ans[s.x][s.y] = s.k;
dfs(s);
}
else if ((s.x == 1 || s.x == n) && s.y & 1)
{
s.y++;
s.t = !s.t;
ans[s.x][s.y] = s.k;
dfs(s);
}
else if (!s.t)
{
s.x++;
s.y--;
ans[s.x][s.y] = s.k;
dfs(s);
}
else if (s.t)
{
s.x--;
s.y++;
ans[s.x][s.y] = s.k;
dfs(s);
}
}
int main()
{
cin >> n;
Node s;
s.k = 1;
s.x = s.y = 1;
s.t = true;
ans[1][1] = 1;
dfs(s);
for (register int i = 1; i <= n; i++)
{
for (register int j = 1; j <= n; j++)
{
cout << ans[i][j] << ' ';
}
cout << endl;
}
return 0;
}