Если первый говорит, правду, то он противоречит сам себе. Значит, он лжет, то есть, число честных людей от 1 до 7 (сам он врет, минус один честный человек) . Второй говорит: "Количество честных 1 или 0". Если он прав, то автоматически правыми становятся и остальные, так как выражение "не более 1", и попадает и в "не более 2", "не более 3" и т. д.. . Но, в этом случае количество честных станет равным 7, что будет противоречить утверждению второго. Значит он врет. Итак, у нас уже два вруна. Идем дальше.
Третий говорит: "Честных 0, 1 или 2". Если он прав, значит будут правы 4, 5, 6, 7, 8, и снова количество честных превысит. Врет.
Четвертый говорит: честных людей 0, 1, 2 или 3. Раз он прав, значит правы 5, 6, 7, 8 - итого пятеро.Бред!Так-с, ну, тогда может быть пятый прав? Честных 0, 1, 2, 3 или 4? Тогда правы он, 6, 7 и 8. Все сходится.
Ответ: 1, 2, 3, 4 - вруны, 5, 6, 7, 8 - честные люди!