写着递归扯着蛋

递归

  1. 从内到外
  2. 从外到内

辞不达意,用数的快速幂来说把

#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;
}
原文地址:https://www.cnblogs.com/yuelien/p/6536561.html