Использование остатка от деления для зацикливания перебора массива

Рассмотрим задачу. Дана буква английского алфавита, нужно вернуть букву алфавита стоящую через одну от текущей, например, если дана буква a, то нужно вернуть букву c. Причем алфавит нужно считать «зацикленным», после буквы z алфавит начинается сначала с буквы a.

Проще всего решить такую задачу с помощью остатка от деления. Предполагаем, что весь алфавит сохранен в массиве. Сначала нужно вычислить индекс буквы которая дана, потом прибавить к нему 2 и взять остаток от деления на длину массива, это и будет индекс буквы которую нужно вернуть. Так как массив состоит из букв английского алфавита, то длина массива это количество букв в английском алфавите.

новый_индекс = (индекс + 2) % длина_массива

При такой операции новый индекс никогда не будет больше длины массива. В случае если сумма будет равна длине массива, то результат взятия остатка будет равен нулю, а значит индексация массивов в используемом языке программирования тоже должна начинаться с нуля.

Примеры задач

Ссылки на эту заметку

Эта заметка на GitHub

Обсудить на форуме

Последниее изменение: