【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】
题目:
数值的整数次方.实现函数double Power(double base, int exponent),求base 的exponent次方,不需要考虑溢出
题目分析:
1、要考虑double型变量的比较
2、正负数的不同点
算法实现:
#include <stdio.h>
int double_equal(double a, double b)
{
double diff = a-b;
if(diff > -0.000001 && diff < 0.000001)
return 1;
else
return 0;
}
double Power(double base, int exp)
{
if(double_equal(base, 0.0) && (exp <= 0))
return 0.0;
int ads_exp = (exp > 0)?exp:-exp;
int i = 0;
double result = 1.0;
for(; i<ads_exp; ++i)
{
result *= base;
}
return ((exp > 0)? result:1.0/result);
}
int main()
{
double base = 0.0; int exp = 2;
printf("%f^%d-->%f\n", base, exp, Power(base, exp));
base = 0.0; exp = 0;
printf("%f^%d-->%f\n", base, exp, Power(base, exp));
base = 3.0; exp = -3;
printf("%f^%d-->%f\n", base, exp, Power(base, exp));
base = 3.0; exp = 100;
printf("%f^%d-->%f\n", base, exp, Power(base, exp));
return 0;
}