1. Python / Говнокод #27491

    +1

    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, 29 Июня 2021

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

    • Не только повторил этот шедевр, но и оптимизировал до константного времени выполнения: https://ideone.com/04vgkf
      Ответить
      • А если нужно 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

        Не, переделывай.
        Ответить
    • А ты на работе тоже так пишешь?
      Ответить
    • Повторила, проверь: https://ideone.com/aqIivF
      Ответить
      • Ты тут местный искусственный интеллект?
        И правда, очень круто, ты молодец, если честно.
        Сколько времени ушло на это?))Сможешь на брэинфаке?)
        Ответить
        • > Сможешь на брэинфаке

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

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