Ответ:

Пусть перед высказыванием очередного жителя уже прозвучало некоторое количество истинных и ложных заявлений. Разность между числом ложных и истинных заявлений после каждого шага изменяется на 1: при истинном заявлении она уменьшается на 1, а при ложном — увеличивается на 1.

Первый житель не может быть рыцарем: среди ранее сделанных заявлений нет ни истинных, ни ложных, поэтому его утверждение ложно. Значит, первый житель — лжец.

Для лжеца утверждение «истинных на 20 меньше, чем ложных» должно быть ложным. После первого заявления разность равна 1. Пока она не достигнет 20, очередное утверждение ложно, поэтому разность увеличивается на 1. На 20-м заявлении разность станет 20, и это утверждение будет истинным; значит, 20-й житель — рыцарь. После этого разность уменьшается и снова начинается чередование: ложные заявления увеличивают разность, истинные уменьшают её.

Таким образом, рыцари делают заявления с номерами 20, 22, 24, ..., 64. Это арифметическая прогрессия:

\[n=\frac{64-20}{2}+1=23.\]

Ответ: 23 рыцаря.