菜鸟系列 Golang 实战 Leetcode —— 面试题16. 数值的整数次方

实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

?

示例 1:

输入: 2.00000, 10
输出: 1024.00000
示例?2:

输入: 2.10000, 3
输出: 9.26100
示例?3:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25
?

说明:

-100.0 <?x?< 100.0
n?是 32 位有符号整数,其数值范围是?[?231,?231?? 1] 。
func myPow(x float64, n int) float64 {
    if x==0{
        return 0
    }
    if n==0{
        return 1
    }
    if n<0{
        n=-1*n
        x=1/x
    }
    if n%2==0{
        return myPow(x*x,n/2)
    }else{
        return x*myPow(x*x,(n-1)/2)
    }
}

原文地址:https://www.cnblogs.com/jiliguo/p/12430974.html

时间: 2024-07-30 09:20:01

菜鸟系列 Golang 实战 Leetcode —— 面试题16. 数值的整数次方的相关文章

菜鸟系列 Golang 实战 Leetcode —— 面试题57 - II. 和为s的连续正数序列

输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. ? 示例 1: 输入:target = 9 输出:[[2,3,4],[4,5]] 示例 2: 输入:target = 15 输出:[[1,2,3,4,5],[4,5,6],[7,8]] ? 限制: 1 <= target <= 10^5 题解1: 采用滑动窗口,设置左右两个指针,如果sum为target,则保存双指针内的值,如果sum&

16. 数值的整数次方

面试题16. 数值的整数次方 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 说明: -100.0 < x < 100

16 数值的整数次方 (第3章 高质量的代码)

题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 不只要通过测试,要更着重代码的优化 测试用例: base与exponent分别取正数.0.负数  共3*3九种情况 解题思路: 1)为base与exponent区分正数.0.负数  全面但是不够高效率的解法 class Solution { public: bool g_InvalidInput = false; double Pow

面试题11-求数值的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 代码 import java.lang.Math; public class Solution { public double Power(double base, int exponent) { double result=1.0; int m=Math.abs(exponent); if(exponent==0){ return result; } for(int i=0

菜鸟系列之C/C++经典试题(二)

求子数组的最大和 题目描述: 输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4,7, 2,因此输出为该子数组的和18. 这个问题在各大公司面试中出现频率之频繁,被人引用次数之多,非一般面试题可与之匹敌.ok,下面,咱们来一步一步分析这个题. 分析与解法 解法一 求一个数组的最大子数组和

菜鸟系列之C/C++经典试题(一)

这个我写菜鸟系列之C/C++ 的第一篇文章 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向. 比如将二元查找树 10 /    \ 6       14 /  \     / \ 4     8  12   16 转换成双向链表 4=6=8=10=12=14=16. 分析:本题是微软的面试题.很多与树相关的题目都是用递归的思路来解决,本题也不例外.下面我们用两种不同的递归思路来分析. 思路一:当我们到达某一结点准备调整以该结点为根结点

菜鸟系列之C/C++经典试题(三)

设计包含min函数的栈 题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素.要求函数min.push以及pop的时间复杂度都是O(1). 分析:这是2006年google的一道面试题. 我看到这道题目时,第一反应就是每次push一个新元素时,将栈里所有逆序元素排序.这样栈顶元素将是最小元素.但由于不能保证最后push进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈了. 在栈里添加一个成员变量存放最小元素(或最小元素的位置).每次push一个新元素进栈的时候,如果该元素比

面试题16:数值的整数次方

// 面试题16:数值的整数次方 // 题目:实现函数double Power(double base, int exponent),求base的exponent // 次方.不得使用库函数,同时不需要考虑大数问题. 解题思路: 解题并不难,重要的是要考虑到输入的各种情况,并且有相应的处理. double和int都是可以取负数和0的,如果base取0,exponent<0,结果显然是不存在的. base取0,exponent取非负,直接返回1就可以了. 其他情况,正常运算就好,要注意如果expo

剑指Offer对答如流系列 - 数值的整数次方

面试题15:数值的整数次方 题目描述 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 问题分析 三思而后行,这道题如果没事实现考虑好,非常容易出错. 首先分析列举出所有的场景. base的值 可能为正数也可能为负数(包含整数.小数) exponent的值可能为正整数也可能为负整数 base的值的处理是比较简单的,对于exponent的处理就要多加考虑了. 当exponent的值为负