剑指Offer(十二):数值的整数次方

2017年11月28日11:17:11 1 4,186 °C
摘要

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

剑指Offer(十二):数值的整数次方

一、前言

本系列文章为《剑指Offer》刷题笔记。

刷题平台:牛客网

书籍下载:共享资源

二、题目

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

1、思路

当指数为负数的时候,可以先对指数求绝对值,然后算出次方的结果之后再取倒数。如果底数为0,则直接返回0。此时的次方在数学上是没有意义的。

除此之外,我们要注意:由于计算机表示小数(包括float和double型小数)都有误差,我们不能直接用等号(==)判断两个小数是否相等。如果两个小数的差的绝对值很小,比如小于0.0000001,就可以认为它们相等。

在计算次方的时候,除了简单的遍历,我们可以使用如下公式进行计算,来减少计算量:

剑指Offer(十二):数值的整数次方

2、代码

C++:

Python2.7:

python中等于没有误差,因此可以写出如下代码:

weinxin
微信公众号
分享技术,乐享生活:微信公众号搜索「JackCui-AI」关注一个在互联网摸爬滚打的潜行者。
Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 宁缺毋滥 来自天朝的朋友 谷歌浏览器 Windows 10 中国 移动 0

      请问把int类型的exponent转换为unsigned int有什么好处???