
drawSpiral
Minh có một mảnh giấy n × m
mà anh ta muốn vẽ một hình xoắn ốc. Anh ta sẽ bắt đầu vẽ tại một trong các góc và vẽ theo chiều kim đồng hồ. Các đường xoắn ốc mà anh ta vẽ được phân cách bằng indent
ô vuông. Tổng cộng, Minh muốn vẽ turns
vòng xoắn ốc, nhưng anh không chắc mình có thể làm điều đó trên mảnh giấy này. Bạn có thể giúp anh ta vẽ hình xoắn ốc này!
Bạn có hai số nguyên, n
và m
, xác định kích thước của tờ giấy. Bạn có giá trị góc startCorner
cho góc bắt đầu hình xoắn ốc (1
cho góc trên bên trái, 2
cho góc trên bên phải, 3
cho góc dưới bên phải và 4
cho góc dưới bên trái), Nếu tờ giấy là quá nhỏ để vẽ đầy đủ số vòng xoắn ốc thì hãy vẽ tối đa các cạnh có thể.
Example:
-
For
n = 18
,m = 9
,startCorner = 1
,indent = 1
, andturns = 2
, the output should bedrawSpiral(n, m, startCorner, indent, turns) =
['1', '1', '1', '1', '1', '1', '1', '1', '1'],
['0', '0', '0', '0', '0', '0', '0', '0', '1'],
['1', '1', '1', '1', '1', '1', '1', '0', '1'],
['1', '0', '0', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1'],
['1', '0', '1', '1', '1', '1', '1', '0', '1'],
['1', '0', '0', '0', '0', '0', '0', '0', '1'],
['1', '1', '1', '1', '1', '1', '1', '1', '1']]
Hình xoắn ốc bắt đầu ở góc trên bên trái của tờ giấy và theo chiều kim đồng hồ. Vòng xoắn ốc kết thúc sau hai lượt đầy đủ.
- For
n = 18
,m = 9
,startCorner = 2
,indent = 2
, andturns = 2
, the output should be drawSpiral(n, m, startCorner, indent, turns) =
['1', '1', '1', '1', '1', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '1', '0', '0', '1'], ['1', '0', '0', '1', '1', '1', '0', '0', '1'], ['1', '0', '0', '0', '0', '0', '0', '0', '1'], ['1', '0', '0', '0', '0', '0', '0', '0', '1'], ['1', '1', '1', '1', '1', '1', '1', '1', '1']]
Vòng xoắn ốc bắt đầu ở góc trên bên phải của tờ giấy và đi xuống thật không may, tờ giấy không có đủ không gian cho 2 lượt vẽ. Vì vậy vòng xoắn ốc kết thúc như hình trên
Input/Output:
-
[execution time limit] 0.5 seconds
-
[input] integer n
Chiều cao của giấy.
3 ≤ n ≤ 100
. -
[input] integer m
Chiều rộng của giấy.
3 ≤ m ≤ 100
. -
[input] integer startCorner
Các góc nơi bắt đầu xoắn ốc. 1 đại diện cho góc trên cùng bên trái, 2 góc trên bên phải, 3 góc dưới bên phải và 4 góc dưới bên trái.
1 ≤ startCorner ≤ 4
.
-
[input] integer indent
Khoảng cách giữa các đường xoắn ốc
1 ≤ indent ≤ 10
.
- [input] integer turns
Số vòng quay đầy đủ nên được tạo nên , tối đa nếu có thể.1 ≤ turns ≤ 20
.
- [output] array.array.char
Một ma trận gồm 0 và 1, trong đó các số 1 đại diện cho hình xoắn ốc.
Post Comment