a^b的高效算法
LZ之所以要贴上这个算法,是因为LZ的一个朋友用这个小算法考过LZ,我当时想到了这个算法,思想有了,但是没有实现出来,但是我朋友用递归的方法写的,但是递归的LZ的理解不是很深刻,所以这里用自己理解的非递归的形式写出来。

#include<stdio.h>
int pow(int a,int b)  //不用栈的方法
{int r=1;if(b==0)return 1;if(b==1)return a;while(b>1){if(b%2!=0)r*=a;a*=a;b/=2;}return a*r;
}
int _pow(int a,int b)  //用栈操作
{ int stack[65],index=0;int res=1;if(b==0)return 1;if(b==1)return a;while(b>0){stack[index++]=b%2;b/=2;}for(int i=index-1;i>=0;i--){if(stack[i]==0)res*=res;else{res*=res;res*=a;}}return res;
}
int __pow(int a,int b) //最原始的方法,一般都能想到,但是效率很差,
{                    int res=1;if(b==0)return 1;for(int i=1;i<=b;i++)res*=a;return res;
}
int main()
{int a,b;while(scanf_s("%d%d",&a,&b)){printf("%d\n",__pow(a,b));printf("%d\n",_pow(a,b));printf("%d\n",pow(a,b));}return 0;
}

原理:
假如 b=13
那么 b的二进制形式为1101,我们知道:

那么:

在这里我们可以利用栈这种数据结构来实现将b转为二进制,大概思路就是这样。
运行截图:

大家有不明白的可以看看这个博主写的,我有一部分也是借鉴这个博主的。

http://blog.csdn.net/pakko/article/details/6890452

a的n次方的高效算法相关推荐

  1. 《算法心得:高效算法的奥秘(原书第2版)》

    <算法心得:高效算法的奥秘(原书第2版)> 基本信息 原书名:Hacker's Delight,Second Edition 原出版社: Addison-Wesley Profession ...

  2. CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

  3. 再谈poj2965(高效算法)

    在枚举分类中已有暴力枚举的方法解这道题.之后在网上看到大神的高效算法,膜拜之.故copy在此. /*参考高手的高效解法: > 证明:要使一个为'+'的符号变为'-',必须其相应的行和列的操作数为 ...

  4. 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符

    题目描述 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符. 给定一个字符串(不一定全为字母)A及它的长度n.请返回第一个重复出现的字符.保证字符串中有重复字符,字符串的长度小于等于500 ...

  5. ( 设计高效算法 ) 年龄排序 Age Sort Uva 11462

    ( 设计高效算法 ) 年龄排序 Age Sort Uva 11462 可以使用整数排序法, 内存太小无法堆排序. #include <cstdio> #include <cstrin ...

  6. 3d 自动生成物体_CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

  7. 【FFT/IDFT】高效算法

    题目: 设x(n)是长度为2N的有限长实序列,X(k)为x(n)的2N点 DFT. (1)试设计用一次N点FFT完成计算X(k)的高效算法; (2)若已知 X(k),试设计用一次N点 IFFT实现求X ...

  8. 算法心得:高效算法的奥秘 作者:[美] Henry S. Warren, Jr.

    书籍信息 名称:<算法心得:高效算法的奥秘>电子书PDF版 作者:[美] Henry S. Warren, Jr. 出版社:机械工业出版社 内容简介 在本书中,作者给我们带来了一大批极为诱 ...

  9. C#,楔子数(Sphenic Number)的暴力算法与高效算法源代码

    楔子数(Sphenic Number)来自于一个题目: Schoolboy Vasya is interested in the problem of distinguishing prime num ...

最新文章

  1. 焦虑的 BAT、不安的编程语言,揭秘程序员技术圈生存现状!
  2. ls 中一些你不知道的事
  3. 直接运行PowerShell脚本
  4. python画图哆啦a梦-Python小白绘图 哆唻A梦 turtle真的很强大!
  5. 【渝粤题库】广东开放大学 Java高级编程技术 形成性考核
  6. php pdf添加水印图片,php pdf添加水印(中文水印,图片水印)
  7. 计算机网络基础系列(八)TCP三次握手、四次挥手、可靠数据传输、拥塞控制和UDP
  8. JSP入门必须了解的知识详解
  9. python的类,复现assert和eval成功失败原因
  10. MySQL系列之日志汇总:redo log、undo log、binlog、errorlog、slow query log、general log、relay log
  11. 如何修改PDF,怎么给PDF加页码
  12. Airflow Timezone
  13. 工控机CF卡槽无法使用的解决方案
  14. vue webpack打包名称设置
  15. serverlet 区别_jsp serverlet 区别
  16. 测试论坛和网站资源分享
  17. abp zero mysql_ABP从入门到精通(2):aspnet-zero-core 使用MySql数据库
  18. [Ubuntu 16.04] [Memos] install ssh
  19. 【软件】[Qt\C++] 冒泡、希尔、堆排、基数、快排 5种排序Gui界面带对比——使用Qt实现
  20. 零基础学CocosCreator·第六季-常用编程框架和算法

热门文章

  1. ORB_SLAM 算法框架解析
  2. 近世代数 笔记和题型连载:第一章(代数系统引入)
  3. python 去掉双引号_Python基础学习笔记(一)变量与数据类型
  4. 英文好歌《shutterbug》——摄影师【2020最美英文歌曲之小清新】
  5. R语言(四) 自定义设置x轴时间刻度值
  6. 文曲星猜数字游戏6步算法(含代码)
  7. 医院HIS住院系统中长期医嘱的自动分解解决方案
  8. MATLAB用SOR方法解方程组,SOR迭代法 求MATLAB程序
  9. 电子油门踏板/刹车踏板位置传感器
  10. 【电商】电商后台系统整体介绍