ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数学02--数值的整数次方

2021-06-09 23:30:11  阅读:194  来源: 互联网

标签:02 exponent offer -- 算法 base result 次方 参考答案


数学02--数值的整数次方-jz12

题目概述

  • 算法说明
    给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
    保证base和exponent不同时为0。
  • 测试用例
    输入: 2,3
    输出: 8.0

解析&参考答案

  • 解析
    需要考虑 exponent 为负数的情况,计算具体值的时候可以使用通过位移来提高效率。
  • 参考答案
vim jz12.go
package main

import "fmt"

func Power(base float64, exponent int) float64 {
	if base == 0.0 {
		return 0.0
	}
	result := 1.0
	if exponent < 0 {
		exponent = -exponent
		base = 1.0 / base
	}
	for exponent > 0 {
		if (exponent & 1) == 1 {
			result *= base
		}
		base *= base
		exponent = exponent >> 1
	}
	return result
}

func main() {
	base := float64(2)
	exponent := 3
	result := Power(base, exponent)
	fmt.Println(result)
}

注意事项

  1. to add

说明

  1. 当前使用 go1.15.8
  2. 参考 牛客网--剑指offer
    标题中jzn(n为具体数字)代表牛客网剑指offer系列第n号题目,例如 jz01 代表牛客网剑指offer中01号题目。

注意!!!

  • 笔者最近在学习 golang,因此趁机通过数据结构和算法来进一步熟悉下go语言
  • 当前算法主要来源于剑指 offer,后续会进一步补充 LeetCode 上重要算法,以及一些经典算法
  • 此处答案仅为参考,不一定是最优解,欢迎感兴趣的读者在评论区提供更优解

标签:02,exponent,offer,--,算法,base,result,次方,参考答案
来源: https://blog.csdn.net/u011127242/article/details/117756532

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有