#include<stdio.h>
// x^n
int pow(int x,int n)
{
if (x == 0)
return 0;
if (n == 0)
return 1;
if(n%2==0) return pow(x*x,n/2);
return x*pow(x*x,n/2);
}
// (x^n)%m
int powmod(int x,int n,int m)
{
x%=m;
if (x == 0)
return 0;
if (n == 0)
return 1;
if(n%2==0) return powmod(x*x,n/2,m)%m;
return (x*powmod(x*x,n/2,m))%m;
}
int main()
{
printf("%d\n",pow(2,2));
printf("%d\n",powmod(13,7,31));
return 0;
}
幂运算
最新推荐文章于 2024-03-25 18:41:09 发布