实现函数double Power(double base,int exponent),求base的exponent次方
2013-07-24 14:15
417 查看
/* copyright@nciaebupt 转载请注明出处 题目:实现函数double Power(double base,int exponent),求base的exponent次方。 不得使用库函数,同时不需要考虑大树问题。 分析: 这道题目有以下几点需要注意: 1. 0的0次方是无意义的,非法输入 2. 0的负数次方相当于0作为除数,也是无意义的,非法输入 3. base如果非0,如果指数exponent小于0,可以先求base的|exponent|次方,然后再 求倒数 4. 任何数的0次方都为0 5. 判断double类型的base是否等于0不能使用==号。因为计算机表述小树(包括float 和double型小数)都有误差,不能直接使用等号(==)判断两个小数是否相等。如果两 个数的差的绝对值很小,那么可以认为两个double类型的数相等。 */ #include <cstdlib> #include <iostream> bool invalidInput = false; bool doubleEqual(double x, double y) { if(((x > y) && (x-y < 0.000001)) || ((x < y) && (x-y > -0.000001))){ return true; } else{ return false; } } double Power(double base, int exponent){ if(doubleEqual(base, 0.0) && exponent <= 0){//0的0次方与0的负次方 无效输入 invalidInput = true; return -1.0; } if(exponent == 0){//任何数的零次方都为0 return 0.0; } //判断指数是否为负数 int negative = false; if(exponent < 0){ negative = true; exponent = -exponent; } double res = 1.0; for(int i = 0; i < exponent; ++i){ res = res * base; } if(negative == true){ return 1/res; } else{ return res; } } int main(int argc, char ** argv) { double base = 2.0; int exponent = -2; double res = Power(base, exponent); std::cout<<res<<std::endl; system("pause"); return 0; }
相关文章推荐
- 实现函数double Power(double base,int exponent),求base的exponent次方
- 实现函数 double Power(double base,int exponent),求base的exponent次方,不得使用库函数,不用考虑大数问题
- 面试题11:实现函数 double Power(double base, int exponent)。求base的exponent的次方。不使用库函数。
- 实现函数 doubule Power(double base, int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题
- Power(int base, int exponent) 函数实现
- Power(int base, int exponent) 函数实现
- 数值的整数次方double pow(double base,int exponent)求base的exponent次方 不考虑大数 不准用库函数
- 编程实现求幂函数double power(double base,int ex) 递归实现
- java实现给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 实现power(base,exponent),不用库函数和for循环
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 库函数的实现———double power(double base,int ex)
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方