递归
- 从内到外
- 从外到内
辞不达意,用数的快速幂来说把
#include<iostream>
using namespace std;
int ans1;
int quickmod1(int a,int b,int c)
{
if (b%2==0)
ans1 = (quickmod1(a, b / 2, c) % c)*(quickmod1(a, b / 2, c) % c);
else if(b>1&&b%2)
ans1 = (a*quickmod1(a, b - 1, c)) % c;
if (b == 1)
return a;
else
return ans1;
}
int ans2 = 1;
int quickmod2(int a, int b, int c)
{
if (b % 2)
ans2 = (a*quickmod2(a, b - 1, c))%c;
else
{
while (b>1)
{
ans2=a*a;
b /= 2;
a=ans2;
}
}
return ans2;
}
int main()
{
cout << quickmod1(3, 9, 10000) << endl;
cout << quickmod2(3, 9,10000) << endl;
}