Я думаю, что одним из наименее используемых арифметических операторов в большинстве языков программирования является оператор по модулю, который используется для нахождения остатка при делении числа на другое. Обычный символ для оператора по модулю - %. Пример:

int i = 1 % 5; // i is equal to one

Один из распространенных вариантов использования этого оператора - проверка четности или нечетности числа. Что довольно просто, если вы получите остаток при делении на 2, это нечетное число, в противном случае - четное. Но давайте займемся этим оператором поинтереснее. Давайте попробуем оператор с кучей чисел вроде этого:

0 % 2 = 0
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
4 % 2 = 0
5 % 2 = 1

Вы обратили внимание на шаблон? Результат оператора по модулю никогда не может быть больше делителя (второго операнда). Он всегда будет на единицу меньше второго операнда. Причина, по которой это происходит, заключается в том, что разделение - это справедливый обмен. Например, если вы поделитесь 7 яблоками с двумя мальчиками, каждый из них получит по 3 яблока, из которых останется 1. Количество оставшихся яблок не может быть больше 2.

Что я могу с этим сделать? Я оставлю это на ваше усмотрение. Но одна интересная вещь, которую вы можете сделать, - это использовать оператор по модулю, чтобы установить границу для числа, а не использовать оператор if then else. Пример: int i = num% 181, целочисленная переменная i всегда будет иметь значение в диапазоне 0 ‹= i‹ 181, то есть от 0 до 180.