Целочисленное деление на десять «обрезает» последнюю цифру: Т.е. 1234/10
приводит к 123
.
По модулю 10 возвращается последняя цифра: т.е. 1234%10
приводит к 4
.
Таким образом, приведенный выше код всегда учитывает последнюю цифру.Если последняя цифра нечетная (отсюда %2==1
), она будет засчитана, иначе нет.Таким образом, если он должен посчитать цифру, он берет последнюю цифру (% 10
-материал) и продолжает вычисление с остальными цифрами (рекурсия с /10
-материалом) и добавляет их к цифре.Если текущая цифра не должна быть подсчитана, она продолжается только с оставшимися цифрами (таким образом, рекурсией и /10
-материалом) без добавления ее к текущей цифре.
Если аргумент равен 0, это означает, чточто пройдено целое число, функция завершается возвратом 0.