Александр Ильин писал(а):
Там изюминка в том, что организован цикл с 8 точками входа. На ассемблере такое допустимо, но стурктурные языки не должны такого допускать, насколько я понимаю. Что же вы подразумевали под "правильной" реализацией, если не "нормальные" структурные циклы? Вот вам решение "по Дейкстре", даже в нескольких вариантах.
Под "правильной" я подразумевал структурный вариант (можно с брейками и ретурнами) в точности повторяющий оригинальную "идею". Вот драконовский вариант - повторяет, а ваш - не совсем. Не совсем - потому что операций присваивания больше, а значит и результирующий машинный код будет больше по объему.
Да, я согласен, что структурные языки не должны такого допускать. Собственно вся особенность этого примера в завязке на "оптимизацию". Если бы ее не было, то все бы нормально решалось через обычный тривиальный цикл.