Я пытаюсь решить проблему, в которой мы должны вывести последний ди git с заданным числом 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, не изменится ли он в конечном результате?