Я пытаюсь решить проблему, когда нам нужно вывести последнюю цифру заданного числа n^p.
int modularExponentiation(int n, long long p, int m){
if(p == 0) return 1;
if(p & 1)
return (n % m * modularExponentiation((n*n) % m, p / 2, m) % m) % m;//line 4
return modularExponentiation((n*n) % m, p / 2, m) % m;
}
В этом рекурсивном коде мы меняем временный результат, применяя по модулю в строке 4. Не внесет ли это никаких изменений в окончательный ответ? например, если на любом промежуточном этапе ответ будет 81^4, применив %10 к 81 и заменив его на 1, не изменит ли это окончательный результат?