以下代码是计算 (base^pow)%mod
任何人都可以向我解释以下代码,其中涉及向函数声明变量我想知道函数分配给变量的值以及它是如何执行的。
int tmp = mypow( base, pow >> 1, mod );
整个代码:
#include<stdio.h>
int mypow( int base, int pow, int mod )
{
if( pow == 0 ) return 1;
if( pow % 2 == 0 ){
int tmp = mypow( base, pow >> 1, mod );
printf("\n\n%d\n\n",tmp);
return tmp * tmp % mod;
}
else{
return base * mypow( base, pow - 1, mod ) % mod;
}
}
int main(){
printf("\n\n%d\n\n", mypow(25,20,22));
return 0;
}