Задать вопрос
@GSobaka

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

Всем привет, нужен help. Уже какой день пытаюсь написать прогу, которая бы заполняла массив NxM (не квадратный) рандомными числами по спирали по часовой стрелке. Т.е. от первого элемента матрицы до элемента который будет находится в центре или чуть левее центра. Плиззз, очень нужно помощь.
  • Вопрос задан
  • 4807 просмотров
Подписаться 1 Оценить 10 комментариев
Пригласить эксперта
Ответы на вопрос 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы