面试题---数值的整数次方
来源:互联网 发布:python 读取 csv 编辑:程序博客网 时间:2024/05/18 22:41
题目:实现函数 double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时,
不需要考虑大数问题。
分析:1、考虑越界问题
2、指数小于1的情况处理
3、效率问题。
提高效率的方法:如果输入的指数为32,我们在函数中需要做31次乘法,但如果我们知道了这个数的
16次方,那只要在这个数的16次方上面平方一次就好啦,二16次方是8次方的平方,这样以此类推,我们求32
次方只要做五次乘法就可以了,先求平方,在平方的基础上求4次方,在四次方的基础上求8次方,在8次方的基
础上求16次方,在16次方的基础上求32次方。
源码实现:
double Power(double base,int exponent)
{
if(exponent == 0)
return 1;
if(exponent == 1)
return base;
double result= Power(base,exponent >> 1);
result *= result;
if(exponent & 0x1 ==1)
result *= base;
return result;
}
阅读全文
0 0
- 面试题11:数值的整数次方
- 【面试题十一】数值的整数次方
- 面试题11 数值的整数次方
- 面试题11:数值的整数次方
- 面试题11-数值的整数次方
- 面试题11数值的整数次方
- 面试题11:数值的整数次方
- 面试题11:数值的整数次方
- 面试题11:数值的整数次方
- 面试题11:数值的整数次方
- 面试题11:数值的整数次方
- 面试题11:数值的整数次方
- 面试题:数值的整数次方
- 面试题11:数值的整数次方
- 【面试题11】数值的整数次方
- 面试题11:数值的整数次方
- 面试题11:数值的整数次方
- 【面试题11】数值的整数次方
- Populating Next Right Pointers in Each Node II问题及解法
- storm集群安装配置
- c#连接mysql数据库,增删查改命令执行
- 拦截器(19)
- 适用于各个版本的File转Uri,Uri转File
- 面试题---数值的整数次方
- OS学习笔记一
- iMX6开发板—SABER Lite评估板-imx.6评估板学习qnx
- 洛谷 小A点菜
- c#获取网页源码全解
- 随笔
- 关于对象属性行为configurable的问题
- c#文件操作xml、ini、txt、excel、csv操作全解
- BZOJ 1001 [BeiJing2006]狼抓兔子