下面是代码
#include<iostream>
using namespace std;
int n, m;
int a[10086][10086];
bool bj[10086][10086] = {0};
int cs_h, cs_l;
void dfs(int h, int l, int cnt)
{
if(h < 1 || h > n || l < 1 || l > m
|| bj[h][l] == 1)
{
return;
}
bj[h][l] = 1;
a[h][l] = cnt;
dfs(h + 2, l + 1, cnt + 1);
dfs(h - 2, l + 1, cnt + 1);
dfs(h + 2, l - 1, cnt + 1);
dfs(h - 2, l - 1, cnt + 1);
dfs(h + 1, l + 2, cnt + 1);
dfs(h - 1, l + 2, cnt + 1);
dfs(h + 1, l - 2, cnt + 1);
dfs(h - 1, l - 2, cnt + 1);
}
int main()
{
cin >> n >> m >> cs_h >> cs_l;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
a[i][j] = -1;
}
}
dfs(cs_h, cs_l, 0);
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
问,最后空格数怎么调???