题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
实现思想
题目的实现非常简单,只需要考虑三种情况即可:①次数小于0 ②次数等于0 ③次数大于0 ,然后进行分别处理即可。
算法实现
在Codeblock中实现:
#include <stdc++.h>
using namespace std;
class Solution {
public:
double Power(double base, int exponent) {
double result = 1;
if(exponent < 0) {
for(int i = exponent; i < 0; i++) {
result = result * base;
}
return 1 / result;
}
if(exponent == 0) return 1;
for(int i = 0; i < exponent; i++) {
result = result * base;
}
return result;
}
};
int main()
{
Solution S;
cout << S.Power(10,-2) << endl;
cout << S.Power(10,3) << endl;
cout << "Hello world!" << endl;
return 0;
}
很多人可能出现找不到库文件#include <stdc++.h>
这个库文件是自己添加的,内部包含了很多STL库文件的include而已。
运行截图
总结
此题目比较简单,只需考虑多种情况即可,没什么好总结的。
但是在编译的时候遇到一个问题:因为类中的函数是double型,所以最终必须有double型的变量return,不然就会报错,也不能将double型的变量写在if条件中return,那样也会报错,如下图
但是如果放在else中return就不会报错,如下图return在else中就不会报错。