給定兩個整數m,n,生成乙個m*n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置,當超過26時又從a開始填充。例如,當m=5,n=8時,矩陣中的內容如下:
a b c d e f g h
v w x y z a b i
u j k l m n c j
t i h g f e d k
s r q p o n m l
input
m為行數,n為列數,其中m,n都為大於0的整數。
output
分行輸出相應的結果
sample input4 9sample output a b c d e f g h i
v w x y z a b c j
u j i h g f e d k
t s r q p o n m l
遞迴寫法:
#include
#include
#include
#include
using
namespace std;
const
int n =
1010
;int d[n]
[n];
int idx;
int n, m;
void
dfs(
int x,
int y)
, dy[4]
=;//上右下左
if(idx == n * m)
return;if
(x ==
1&& y ==1)
y = m;
}for
(int i =
0; i <
4; i ++)if
(x + dx[i]
<= n && d[x + dx[i]
][y + dy[i]]==
0&& y + dy[i]
<= m && x + dx[i]
>
0&& y + dy[i]
>0)
}else
if(i ==1)
}else
if(i ==2)
}else
if(i ==3)
}}dfs(x, y);}
intmain()
for(
int i =
1; i <= n; i ++
)return0;
}
遞推寫法:
#include
using
namespace std;
int res[
100]
[100];
intmain()
, dy=
;for
(int x =
0, y =
0, d =
0, k =
1; k <= n * m; k ++
) x = a, y = b;
}for
(int i =
0; i < n; i ++
)for
(int j =
0; j < m; j ++
)for
(int i =
0; i < n; i ++
)return0;
}
2938 字母旋轉遊戲
描述給定兩個整數m,n,生成乙個m n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置,當超過26時又從a開始填充。例如,當m 5,n 8時,矩陣中的內容如下 a b c d e f g h v w x y z a b i u j k l m...
POJ 3752 字母旋轉遊戲
字母旋轉遊戲 time limit 1000ms memory limit 65536k total submissions 7053 accepted 2642 description 給定兩個整數m,n,生成乙個m n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時...
POJ 3752 字母旋轉遊戲 模擬 動態陣列
description 給定兩個整數m,n,生成乙個m n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置,當超過26時又從a開始填充。例如,當m 5,n 8時,矩陣中的內容如下 a b c d e f g h v w x y z a b i...