zoukankan      html  css  js  c++  java
  • 九度OJ 1514 数值的整数次方【算法】

    题目地址:http://ac.jobdu.com/problem.php?pid=1514

    题目描述:

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

    输入:

    输入可能包含多个测试样例。
    对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开。

    输出:

    对应每个测试案例,
    输出一个浮点数代表答案,保留两位小数即可。

    样例输入:
    5
    1.0 10
    0.0 -5
    1.0 0
    1.2 5
    2.0 -1
    样例输出:
    1.00e+00f
    INF
    1.00e+00f
    2.49e+00f
    5.00e-01f
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
     
    double PowerWithUnsignedExponent (double base, unsigned int exponent){
        if (exponent == 0)
            return 1.0;
        if (exponent == 1)
            return base;
        double ans = PowerWithUnsignedExponent (base, exponent >> 1);
        ans *= ans;
        if (exponent & 0x01 == 1){
            ans *= base;
        }
        return ans;
    }
     
    double Power (double base, int exponent){
        double ans;
        unsigned int uexponent;
        if ((base == 0) || (base == 0 && exponent < 0))
            return 0.0;
        uexponent = (unsigned int)abs (exponent);
        ans = PowerWithUnsignedExponent (base, uexponent);
        if (exponent < 0)
            ans = 1.0 / ans;
        return ans;
    }
     
    int main(void){
        int T;
        double base;
        int exponent;
        double ans;
        double zero = 0.0;
     
        while (scanf ("%d", &T) != EOF){
            while (T-- != 0){
                scanf ("%lf%d", &base, &exponent);
                ans = Power (base, exponent);
                if (ans != 0.0)
                    printf ("%.2ef
    ", ans);
                else if (base == 0.0 && exponent >= 0)
                    printf ("%.2ef
    ", zero);
                else
                    printf ("INF
    ");
            }
        }
     
        return 0;
    }

    参考资料:何海涛 -- 程序员面试题精选100题(44)-数值的整数次方[算法]

  • 相关阅读:
    oracle日志总结
    UIScrollView,contentOffset,contentInsert的各自特点和区别?
    js动态增加表格
    判断某个对象是不是DOM对象
    IOS 中frame与bounds的区别
    删除重复项,只取其中一条数据
    NSBundle
    React
    HTML5 postMessage 和 onmessage API 详解
    SonarQube
  • 原文地址:https://www.cnblogs.com/liushaobo/p/4373806.html
Copyright © 2011-2022 走看看