[陷阱题]求base的exponent次方

题目描述

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

注意点:

  1. double类型base的计算:首先将小数点后移到末尾。比如,计算12.3,将12.3转换为123.0
  2. 计算123的k次方后,再按照比例还原该数
  3. 注意k小于0的情况
double Power(double base, int exponent) {
    int count_10 = 0;
    int exponent_flag = 1;
    while(base-(int)base)
    {
        base = base * 10;
        count_10++;
    }
    if(exponent < 0)
    {
        exponent_flag = -1;

    }
    exponent = exponent * exponent_flag;
    int pow1 = pow((int)base,exponent);
    //if(count_10 == 0)

    int m = pow(10,count_10);
    int k = pow(m,exponent);
    double pow2 = (double)pow1/k;
    if(exponent_flag ==  -1)
    {
        pow2 = 1.0/pow2;
    }
    return pow2;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容