题目
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
不得使用库函数,同时不需要考虑大数问题。
分析
这个题目看似简单,但是有很多问题需要考虑。
- 边界问题
当底数base是0且指数是负数时,需要做特殊处理。 - 浮点型equal问题
计算机表示小数(float和double)都有误差,因而不能直接使用等号(==)进行比较。如果两个小数的差的绝对值很小,就可以认为它们相等。 - 效率问题
可以不用进行exponent次乘法完成指数计算,比如:求一个树的32次方,如果已经计算得到了16次方,那么只需要在16次方的基础上再平方一次就可以了。
实现
|
|