а если нечетное, то остаток - среднее число, которое вроде как можно получить разделив N на 2.
Например есть задача: Реализуйте алгоритм перемешивания списка. Без функции shuffle из модуля random
$ c++ wolnerlol.cpp
wolnerlol.cpp:8:11: warning: multi-character character constant [-Wmultichar]
8 | { '111', "o"},
| ^~~~~
1;2
2; 2
Попробуй арифметику по модулю. Тоесть например 6 + 6 = 2(mod 10).
По идее должно быть быстрее чем просто складывать и делить.