OJ日常 | 代码完整性能——数值的整数次
2018-03-24 14:22
120 查看
问题
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。一个答案
import java.lang.Math; public class Solution { public double Power(double base, int exponent) { double res = 1; int exponent_ = Math.abs(exponent); for(int i=0; i<exponent_; i++){ res = res*base; } if(exponent < 0){ res = 1/res; }else if(exponent == 0) return 1; return res; } }
没太多好说的,正负数和0都考虑到就好。如果想进一步优化,可以借鉴斐波那契数列,替换一部分代码
for(int i=0; i<exponent_; i++){ res = res*base; }
不用走exponent次,只需要走它的二进制位数次,牛客测试时间只是快乐几秒
public double powerExponent(double base, int exponent){ if(exponent == 0) return 1; if(exponent == 1) return base; double res = powerExponent(base, exponent>>1); res *=res; int k = exponent & 0x1; if(k == 1) res = res*base; return res; }
相关文章推荐
- 数值的整数次方( ( 考点: 代码的完整性) )
- 九度OJ 1514 数值的整数次方【算法】
- 代码的完整性-面试题11-数值的整数次方
- lintcode整数排序的完整c++代码
- 数值的整数次方(不考虑结果的大数问题)优秀的代码就是要注意细微的细节
- 第三章 高质量的代码 数值的整数次方
- 【编程题目】数值的整数次方——关于代码完整性及错误处理方式的探讨(C++实现)
- OJ日常 | 代码的鲁棒性——链表中倒数第k个结点
- 剑指offer:(11)代码的完整性: 数值的整数次方
- 九度OJ-题目1514:数值的整数次方
- lintcode整数排序的完整c++代码
- 剑指Offer 面试题16:数值的整数次方 Java代码实现
- C语言实现大整数乘法代码的完整代码及运行结果
- (C++)剑指offer-12:数值的整数次方(代码的完整性)
- 剑指offer—第三章高质量代码(数值的整数次方)
- 剑指offer_面试题11 数值的整数次方_考察代码的完整性
- 《剑指offer》刷题笔记(代码完整性):数值的整数次方
- OJ日常 | 代码的鲁棒性——反转链表
- 剑指offer:数值的整数次方 代码实现
- 数值的整数次方(代码的完整性)