java语言不用pow函数求x的n次方_【算法】自己实现x的n次幂(pow函数)
面试遇到了一个问题,是自己实现一个pow(x,n)函数返回一个值,是x的n次幂,回想当时回答的不好,就是死板的直接while 一直乘下去,面试官始不太满意,我想也是,这也太简单了,可是当时死活也想不出怎么优化,刚一出门,想到了一个降低计算次数的方法
比如,4的11次方,我们可以看做是4的5次方 乘以 4的五次方 乘以 4
这样问题就化简为2种情况
指数为单数时,结果= x的n/2次方 * x的n/2次方 * x;
指数为双数时,结果=x的n/2次方 * x的n/2次方
这样循环累乘的次数缩小了一半
以下是我自己写的实现:
public double myPow(double x, int n) {
if(n < 0){
x = 1/x;
n = -n;
}else if( n == 0){
return 1;
}
int r1 = n/2;
boolean isDouble = n % 2 == 0;
double result = 1;
while(r1 > 0){
result *= x;
r1 --;
}
return isDouble? result*result:result*result*x;
}
java语言不用pow函数求x的n次方_【算法】自己实现x的n次幂(pow函数)相关推荐
- java语言不用担心内存吗_不用担心智能手机的电池,只需使用它
java语言不用担心内存吗 When you're trying to get the most life out of your device, it's easy to overthink bat ...
- Java 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
Java 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+-+1/n,当输入n为奇数时,调用函数1/1+1/3+-+1/n public class Test {public void ...
- Java编程语言学习:Java语言基础案例(如求两门课分数之差、三门课平均分、关系运算符作比较)之详细攻略
Java编程语言学习:Java语言基础案例(如求两门课分数之差.三门课平均分.关系运算符作比较)之详细攻略 目录 Java语言基础案例 1.求两门课分数之差.三门课平均分: 2.关系运算符作比较
- 用Java语言进行简单的求1-100之间的求偶和,并把求和结果在控制台输出
##用Java语言进行简单的求1-100之间的求偶和,并把求和结果在控制台输出 话不多说直接上代码 在这里插入代码片 //求1-100之间的求偶和,并把求和结果在控制台输出 public class ...
- c语言学习-编写函数求x的n次方的值
编写函数求x的n次方的值 程序流程图: 代码: #include<stdio.h> long mul(int j ,int k) {int i; long mu=1; for(i=0;i& ...
- Python练习题——第九题:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
Python练习题第九题 题目: 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+-+1/n,当输入n为奇数时,调用函数1/1+1/3+-+1/n #2019/12/26/18:16def f ...
- java语言不用pow函数求x的n次方_X的N次方求解——pow(x,n)实现
最近看到这样的一个题目求X的N次方,自己想了一些解决办法,记录一下留作日后参考. 求X的N次方,首先暴力求解: int exp(int x, int n) { int ret = 1; for(int ...
- c语言 指数 2 n,c语言中指数函数中求2的N次方输出2^n中n为常数
求C语言 编写程序 1的1次方加2的2次方加3的3次方--一直加到n的n次方. 程序如下:#include#includevoidmain(){inti,n,sum=0;scanf("%d& ...
- java语言的数组描述_下列关于Java语言的数组描述中,错误的是()。_学小易找答案...
[单选题]下面()是正确的main()方法说明. [填空题]Java规定,如果子类中定义的成员方法与父类中定义的成员方法同名,并且参数的( )和类型以及( )的类型也相同,则父类中的同名成员方法被屏蔽 ...
最新文章
- 2018-2-28 Linux学习笔记
- 做了5年Java,java读写锁使用
- Spring @Resource、@Autowired、@Qualifier区别
- 低能量社交时代,我们都成了小心翼翼的「舔狗」
- 【转载】Android设计中的.9.png
- python requests 代理超时_python requests 超时与重试
- PHP之cookie免登录
- js将秒转化成时间格式
- 发布量子加密手机,浓眉大眼的三星也开始技术碰瓷了?
- 分屏 投影显示 PPT
- 如何在免费的第三方服务器上运维微信公众号
- GAN介绍 - 提示与技巧
- 论文笔记:Auto-Encoding Scene Graphs for Image Captioning
- vim编辑器替换以及全局替换
- 34岁本科男,做了5年功能测试想转行,除了进厂还能干什么?
- 大数据优化服务 黑科技创造价值 智慧旅游来势猛
- 为了得到一个数的“相反数“,我们将这个数的数字顺序颠倒,然后再加上原先的数得到“相反数“。
- Qt在线帮助文档网址以及安装包下载地址
- 手动Docker部署saber
- 不要再这样做shopee虾皮跨境电商,不然有苦说不出