Was ist die Notwendigkeit der Aussage ans = (ans + mod) % mod
in diesem Programm?Was benötigt die Anweisung von (num + mod)% mod?
Angenommen, mod = 10^9+7
. Diese Funktion wird die Berechnung a
auf die Kraft der b
unter mod Betrieb in O (log (n)) Komplexität:
long long power(long long a, long long b)
{
if (b == 0)
return 1ll;
long long ans = power(a, b/2);
ans = (ans * ans) % mod;
ans = (ans + mod) % mod;
if(b % 2 == 1)
ans = (ans * a) % mod;
ans = (ans + mod) % mod;
return ans;
}
** Reopen **: das ist eine vernünftige Frage, klar gefragt. –