@GSobaka

Как заполнить массив NxM по спирали?

Всем привет, нужен help. Уже какой день пытаюсь написать прогу, которая бы заполняла массив NxM (не квадратный) рандомными числами по спирали по часовой стрелке. Т.е. от первого элемента матрицы до элемента который будет находится в центре или чуть левее центра. Плиззз, очень нужно помощь.
  • Вопрос задан
  • 4793 просмотра
Пригласить эксперта
Ответы на вопрос 2
@r1ch
А смысл, все равно рандомные числа.
Ответ написан
@canadamsocow
//PascalABC.NET
begin
var (n,m) := (3,6);
var a := new integer[n,m]; //array[0..n-1, 0..m-1] of integer
for var i := 0 to n-1 do
for var j := 0 to m-1 do begin
var x := min(i,j,n-1 - i, m-1 - j); //номер спирали, минимальное из 4-х чисел
a[i,j] := n*m+1 - if (i>x) and (m-1-j>x) then
(n-2*x-2)*(m-2*x-2) + (i-x) + (j-x)
else (n-2*x)*(m-2*x) - (i-x) - (j-x)
end;
a.Println
end.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы