ekkim310
?>

Натуральные числа записали в бесконечную таблицу по спирали, начиная с единицы так, как это показано на рисунке. для данного числа 1090 определите всех его соседей (по горизонтали, вертикали и диагонали) и выпишите их через пробел в порядке возрастания.

Информатика

Ответы

Valeria123864531
# # Код на ruby 2.2.3p173
def LineUpArraySize(num)
    cur_size = 4
    while num > cur_size
        cur_size = 2 * cur_size + 8
    end
    cur_size = 2 * cur_size + 8
end

def getSpiralNeighbours(num)
    a = []
    a[0] = [0, 0]
    a[1] = [-1, 1]
    moves = [[1, 0], [0, -1], [-1, 0], [0, 1]]
    move_direction = 0
    side_size = 2
    cur_size = 1
    cycle = 1
    mode_direction = 0
    for i in 2..LineUpArraySize(num)
        new_num = Array.new(2)
        new_num[0] = a.last[0] + moves[move_direction][0]
        new_num[1] = a.last[1] + moves[move_direction][1]
        a[i] = new_num
        # p new_num
        cur_size += 1

        if cur_size == side_size
            cur_size = 1
            move_direction = (move_direction + 1) % 4
            side_size += 1 if move_direction % 2 == 0
            cycle += 1 if move_direction == 0
        end
    end

    a.each_with_index do |i,x|
        p [x, i] if (i[0]-a[num][0]).abs <= 1 and  (i[1]-a[num][1]).abs <= 1
    end
end

getSpiralNeighbours(1090)

Вывод (числа и условные координаты)
[962, [15, 16]]
[1089, [15, 17]]
[1090, [16, 17]]
[1091, [16, 16]]
[1224, [15, 18]]
[1225, [16, 18]]
[1226, [17, 18]]
[1227, [17, 17]]
[1228, [17, 16]]
dashkevich-76611
Program ZvonPOBEDITEL;var i,n,k,i_1,i_2,d_1,d_2: integer;c: char;s,s_1,s_2: string;begin i_1:=0; i_2:=0; d_1:=1; d_2:=1; readln(n); for i:=1 to n do begin  c:='a';  s:='';  while c<>' ' do  begin   read(c);   s:=s+c;  end;  read(c);  while c<>' ' do  begin   s:=s+c;   read(c);  end;  read(c);  while c<>' ' do  begin   read(c);  end;  readln(k);  if (k=i_1) and (i<>1) then d_1:=d_1+1;  if k>i_1 then   begin   i_2:=i_1;   i_1:=k;   s_2:=s_1;   s_1:=s;   d_2:=d_1;   d_1:=1;  end;  if (k=i_2) and (i<>1) then d_2:=d_2+1;  if (k>i_2) and (k<i_1) then   begin    i_2:=k;   s_2:=s;   d_2:=1;  end; end; if (i_1<=200) and (d_1=1) then writeln(s_1); if (i_1<=200) and (d_1<>1)then writeln(d_1); if (i_1>200) and (d_2=1) then writeln(s_2); if (i_1>200) and (d_2<>1) then writeln (d_2);end. Это сугубо мое решение за копирайтинг отвешу люлей. И к тому же сдесь есть одна ошибка о которой знаю только я, так сказать один из частных случаев здесь не прощитывается, по этому поломайте голову, Ха-Ха-Ха...
msburmis

19-шы ғасырда Гайслер және Крукс трубкалары секілді ауасы сорылып алынған трубкалармен тәжірибелер көп жасалды. Сондай тәжірибелермен айналысқан ғалымдардың ішінде Ойген Гольдштейн, Никола Тесла, Йоһанн Вильһельм Һитторф, Томас Эдисон және басқаларды атауға болады. Электр шамын санамағанда ғалымдар өз тәжірибелерінде қолданған трубкалардың практикалық маңызы шамалы еді. Бірақ сол ғалымдар мен өнертапқыштар жүргізген зерттеулердің арқасында электрон лампылар технологиясының пайда болуына керекті көп мәліметтер жиналды.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Натуральные числа записали в бесконечную таблицу по спирали, начиная с единицы так, как это показано на рисунке. для данного числа 1090 определите всех его соседей (по горизонтали, вертикали и диагонали) и выпишите их через пробел в порядке возрастания.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

arnika-ooo1
kashxb2056
alekseisamohvolov7
oniks-plus
inj-anastasia8
rpforma71189
Salnikov1730
sttig
Диана820
Ямпольский
Yurevna991
tanyamurashova11352
tarigor
baeva-larisa8165
Vladimir