求m的n次方

来源:互联网 发布:sem广告投放优化师 编辑:程序博客网 时间:2024/04/30 17:14

不考虑高精度,一般有三种做法:

最笨的做法是把m连乘n-1次,这个就不写了。

第二种做法很好理解,是递归的快速幂,当n是偶数时,分解成两个n/2次方然后再乘起来,n是奇数的时候分解成两个n/2次方乘起来再多乘一个m;

第三种做法有点难得理解,是将n化成二进制,然后把1的那些数位乘起来;

经过测试,n很大的时候,还是第三种方法快。


[cpp] view plain copy
  1. #include <iostream>  
  2. using namespace std;  
  3. int a,b;  
  4. long long way1(int n)  
  5. {  
  6.    if (n==0) return 1;   //0次方等于1  
  7.    else if (n%2==1) return way1(n/2)*way1(n/2)*a; //奇数次  
  8.         else return way1(n/2)*way1(n/2);//偶数次  
  9. }  
  10. long long way2(int n)  
  11. {  
  12.     long long s=1,t=a;  
  13.     while (n>0)  
  14.     {  
  15.         if (n%2==1) s=(s*t);  
  16.         n=n/2;t=t*t;  
  17.     }  
  18.     return s;  
  19. }  
  20. int main()  
  21. {  
  22.     a=2;b=50;cout<<way1(b)<<' '<<way2(b);  
  23.     return 0;  
  24. }  
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 跟徐湛老师学国画 64集全 跟徐湛老师学国画64集全 徐湛绘画课堂1一96 跟徐湛老师学国画 跟徐湛老师学画画 徐湛国画作品 徐湛国画图片 徐湛国画作品图片 跟徐湛学国画全集 跟徐湛学国画 徐源 徐溢 徐灿 拳王徐灿 徐焰 徐然 边江和徐然是夫妻吗 徐熙 徐玄 韩娱之徐玄 徐玄振 徐玲 徐琦 徐琳 徐琳mini 绑架徐琳的故事续集 徐瑶 在阳台上边走边插徐瑶 别来无恙林淮生徐瑶 徐瑾 任乔梁 xulu 徐畅 徐盐高铁 徐盛 徐硕 徐磊 徐磊英语 徐磊老师 徐磊被新东方开除 徐磊英语靠谱吗