
Другие языки программирования и технологии
Как вывести масив 5 на 5 по спирали? Абсолютно любые значения, главное это вывод по порядку. Pascal, Java или C

Для 5 по аналогии
public class Task {
public static void main(String[] args) {
final int size = 3;
int[] array = new int[size * size];
for (int i = 0; i < size * size; i++)
array[i] = i + 1;
int[][] result = toSpiral(array, size);
for (int i = 0; i < size; i++, System.out.println())
for (int j = 0; j < size; j++)
System.out.print(result[i][j] + " ");
}
public static int[][] toSpiral(final int[] array, int size) {
int[][] res = new int[size][size];
int index = 0;
if (size == 3) {
for (int i = 0; i < size; i++)
res[i][0] = array[index++];
for (int j = 1; j < size; j++)
res[size - 1][j] = array[index++];
for (int i = size - 2; i > -1; i--)
res[i][size - 1] = array[index++];
for (int j = size - 2; j > 0; j--)
res[0][j] = array[index++];
for (int i = 1; i < size - 1; i++)
res[i][1] = array[index++];
}
return res;
}
}
public class Task {
public static void main(String[] args) {
final int size = 3;
int[] array = new int[size * size];
for (int i = 0; i < size * size; i++)
array[i] = i + 1;
int[][] result = toSpiral(array, size);
for (int i = 0; i < size; i++, System.out.println())
for (int j = 0; j < size; j++)
System.out.print(result[i][j] + " ");
}
public static int[][] toSpiral(final int[] array, int size) {
int[][] res = new int[size][size];
int index = 0;
if (size == 3) {
for (int i = 0; i < size; i++)
res[i][0] = array[index++];
for (int j = 1; j < size; j++)
res[size - 1][j] = array[index++];
for (int i = size - 2; i > -1; i--)
res[i][size - 1] = array[index++];
for (int j = size - 2; j > 0; j--)
res[0][j] = array[index++];
for (int i = 1; i < size - 1; i++)
res[i][1] = array[index++];
}
return res;
}
}
С++
pair < int, int > addr[]={pair(0,0), pair(0,1) ...итд }
использование
for(i:addr)cout<<arr[i.first][i.second]<<" ";
pair < int, int > addr[]={pair(0,0), pair(0,1) ...итд }
использование
for(i:addr)cout<<arr[i.first][i.second]<<" ";
Лев Елизаров
Мне нравится эта задача!
program spiral; uses crt;
var i,j,l,k,p,m,n,r:integer; a:array[1..30,1..30]of integer;
begin
write('N (<=30): '); readln(r); n:=1; k:=r; m:=r; l:=1; p:=1;
while n<=r*r do
begin for j:=l to k do begin if j=l then i:=j; a[i,j]:=n; inc(n); end;
j:=k; dec(k); inc(p); for i:=p to m do begin a[i,j]:=n; inc(n); end;
i:=m; dec(m); for j:=k downto l do begin a[i,j]:=n; inc(n); end;
j:=l; inc(l); for i:=m downto p do begin a[i,j]:=n; inc(n); end;
end;
for i:=1 to r do begin for j:=1 to r do write(a[i,j]:4); writeln; end; readln;
end.
var i,j,l,k,p,m,n,r:integer; a:array[1..30,1..30]of integer;
begin
write('N (<=30): '); readln(r); n:=1; k:=r; m:=r; l:=1; p:=1;
while n<=r*r do
begin for j:=l to k do begin if j=l then i:=j; a[i,j]:=n; inc(n); end;
j:=k; dec(k); inc(p); for i:=p to m do begin a[i,j]:=n; inc(n); end;
i:=m; dec(m); for j:=k downto l do begin a[i,j]:=n; inc(n); end;
j:=l; inc(l); for i:=m downto p do begin a[i,j]:=n; inc(n); end;
end;
for i:=1 to r do begin for j:=1 to r do write(a[i,j]:4); writeln; end; readln;
end.
Похожие вопросы
- Написать игру на Java или C.
- Пожалуйста! Помогите выбрать: java или c
- Зачем Pascal, если есть C++
- java или c++?
- Чем отличается Java от C# по.. . назначению? Что такого можно писать в Java, чего нельзя в C# и наоборот?
- чем отличается java от c++
- Какой язык по программированию учили вы? HTML,JAVA,JAVA SCRIPT,C++, чем они отличаются друг от друга?
- Для веб разработки обязательно ли знать php или можно обойтись js, java и C++ ?
- Для чего нужен Pascal если есть C или C++ объясните чайнику?
- какие основные отличия Java от C# (c С# я знаком)