Jawa / Говнокод #4114 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
for (int hasFirstPass = 0; hasFirstPass <= 1; ++hasFirstPass) {
                for (int firstPassOffsetLeft = 0; firstPassOffsetLeft <= hasFirstPass; ++firstPassOffsetLeft) {
                    for (int firstPassOffsetRight = 0; firstPassOffsetRight <= hasFirstPass; ++firstPassOffsetRight) {
                        for (int firstPassOffsetTop = 0; firstPassOffsetTop <= hasFirstPass * 2; ++firstPassOffsetTop) {
                            for (int firstPassOffsetBottom = 0; firstPassOffsetBottom <= hasFirstPass * 2; ++firstPassOffsetBottom) {
                                for (int hasSecondPass = 0; hasSecondPass <= 1; ++hasSecondPass) {
                                    for (int secondPassOffsetLeft = 0; secondPassOffsetLeft <= hasSecondPass * 2; ++secondPassOffsetLeft) {
                                        for (int secondPassOffsetRight = 0; secondPassOffsetRight <= hasSecondPass * 2; ++secondPassOffsetRight) {
                                            for (int secondPassOffsetTop =
                                                    0; secondPassOffsetTop <= hasSecondPass; ++secondPassOffsetTop) {
                                                for (int secondPassOffsetBottom =
                                                        0; secondPassOffsetBottom <= hasSecondPass; ++secondPassOffsetBottom) {

                                                    // ... some processing code
                                                    
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

Есть некоторая обработка прямоугольника, проводящаяся в два этапа. Причём на первом этапе отступ от правого и левого края может быть не более 1, от верхнего и нижнего не более 2. На втором этапе наоборот. Каждый из этапов может отсутствовать, в таком случае естественно перебирать варианты отступа для этого этапа не нужно.

Этот код перебирает все возможные варианты такой обработки.

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

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

  • Задам немного необычный вопрос : где тут Java? 😉
    Ответить
    • Вообще да, синтаксически по этому фрагменту язык не определить.
      Может быть Java тут в длинных именах переменных?)
      Ах да, и в египетских скобочках
      Ответить
        • спасибо, Кэп.
          Только вот автор, постом выше сам не знает почему Java.
          Ответить
          • по-моему знает и пишет он о другом
            >>Вообще да, синтаксически по этому фрагменту язык не определить.

            и вообще что за глупая придирка - он что должен был в C++ его запостить чтоле? ))
            Ответить
            • > он что должен был в C++ его запостить чтоле?
              Нет, в С# :))
              Вообще-то, было бы неплохо иметь возможность в таких случаях отмечать код, как подходящий для нескольких языков.
              P.S. Хотя публикатор может и не знать об этом 🙂
              Ответить
              • >>иметь возможность в таких случаях отмечать код, как подходящий для нескольких языков.

                ну это называется теги - на реформал и к страйкеру.
                и да - мысль здравая, позволит избавится от срачей и не раздувать количество разделов.

                хотя мне и так хорошо ))
                Ответить
  • это очень наглядный пример наглядной лимитированой рекурсии, мать её так...
    Ответить

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

Переведи на "PHP", guest!

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


    8