二分法求幂:
比如2的9次方可以看成 ((2的4次方)的平方)*2 ;
2的8次方可以看成 ((2的4次方)的平方);
依此类推……
#include <stdio.h>
/*int fun(int a,int n)
{
if( n == 1 ) return a;
int temp = (a*a) % 10000;
if( n&1 ) return (fun(temp,n/2)*a) % 10000;
else return (fun(temp,n/2)) % 10000;
}*/
/*int fun(int a,int n)
{
int s;
s = 1;
while(n)
{
if( n & 1 ) s = (s * a) % 10000;
n >>= 1;
a = (a * a) % 10000;
}
return s;
}*/
/*int n,m,temp;
void fun2(int m)
{
if( m == 1 ) temp = n;
else
{
fun3(m/2);
if(m&1) temp = temp*temp*n;
else temp = temp*temp;
}
}
*/
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
//temp = 0 ;
printf("%d\n",fun(n,m));
//fun2(m);
//printf("%d\n",temp);
}
return 0;
}
浙公网安备 33010602011771号