Shirlies
宁静专注认真的程序媛~

题目

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

链接

http://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00?tpId=13&tqId=11165&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

代码

 1 class Solution {
 2 public:
 3     double Power(double base, int exponent) {
 4         if(exponent == 0){
 5             return 1;
 6         }
 7         int i = 1;
 8         double ans = base;
 9         int exp = exponent > 0 ? exponent:-exponent;
10         for(;i < exp; ++ i){
11             ans *= base;
12         }
13         if(exponent < 0){
14             return 1.0 / ans;
15         }
16         return ans;
17     }
18 };

问题:没有考虑非法输入,如果base等于0.0,并且exponent小于0时需要报错。再者,浮点数比较大小时不能使用==比较,应该使用<=和>=控制精度范围。参考博客

posted on 2016-08-22 12:24  Shirlies  阅读(236)  评论(0)    收藏  举报