1 #include "stdafx.h" 2 #include3 #include 4 #include 5 /* 6 题目:实现函数 doublePower(double base,int exponenet), 7 求base的exponenet次方,不得使用库函数,同时不需要考虑大数问题 8 */ 9 using namespace std;10 bool g_InvalidInput = false;11 bool equal(double num1,double num2)12 {13 if((num1 - num2 >-0.0000001)&&(num1-num2<0.0000001))14 {15 return true;16 }17 else return false;18 }19 double PowerWithUnsignedExponenet(double base,unsigned int exponent)20 {21 double result = 1.0;22 for(unsigned int i = 1;i<=exponent;++i)23 {24 result*= base;25 }26 return result;27 }28 double Power(double base,int exponent)29 {30 g_InvalidInput = false;31 if(equal(base,0.0)&&exponent<0)32 {33 g_InvalidInput = true;34 return 0.0;35 }36 37 unsigned int absExponent = (unsigned int) (exponent);38 if(exponent<0)39 absExponent = (unsigned int)(-exponent);40 double result = PowerWithUnsignedExponenet(base,absExponent);41 if(exponent <0)42 result = 1.0/result;43 return result;44 }45 46 int _tmain(int argc, _TCHAR* argv[])47 { 48 cout< <