Змея / Говнокод #27491 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
s=79; cur=[s//2,s//2]; prio=[[0,1],[1,0],[0,-1],[-1,0]]
spiral = [[0 for i in range(0,s)] for l in range(0,s)]
for cor in enumerate([[0,0]]+[prio[c] for c in [int(c) for c in ''.join([str(p%4)*((p+2)//2) for p in range(0,s**2//2)])]][:s**2-1],start=1):
    n=cor[0];cur=[cur[0]+cor[1][0],cur[1]+cor[1][1]];spiral[cur[0]][cur[1]]=n
for c in spiral: print(str(('{:>'+str(len(str(s**2))+1)+'}')*len(c)).format(*c))

А теперь попробуй повтори этот шедевр своими трясущимися ручками-веточками на своём С++

Запостил: pl7ofit pl7ofit, (Updated )

Комментарии (18) RSS

    • А если нужно s=5 ?
      21 22 23 24 25
      20 7 8 9 10
      19 6 1 2 11
      18 5 4 3 12
      17 16 15 14 13

      Не, переделывай.
      Ответить
    • Ты тут местный искусственный интеллект?
      И правда, очень круто, ты молодец, если честно.
      Сколько времени ушло на это?))Сможешь на брэинфаке?)
      Ответить
          • Да тут непринципиально уже на что переписывать... Самая интересная часть была в выводе формулы, которая работает за O(1) по памяти. А реализовать эту арифметику да логику на любом языке труда не составит. Можно вообще на дефайнах через BOOST_PP.
            Ответить
            • З.Ы. Можно вобще на GPU параллельно считать все клеточки.
              Ответить
    • чтобы доказать счётность множества рациональных чисел, очевидно жи
      Ответить
        • Да. По сути джва инта, которые можно пронумеровать одним интом закрутив в спираль или ещё как-нибудь.
          Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8