首页 > 其他 > 详细

写着递归扯着蛋

时间:2017-03-11 23:23:51      阅读:181      评论:0      收藏:0      [点我收藏+]

递归

  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;
}

 

写着递归扯着蛋

原文:http://www.cnblogs.com/yuelien/p/6536561.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!