九度OJ-题目1514:数值的整数次方

题目链接地址:

九度OJ-题目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


解题思路:

这道题我是直接调用系统自带的pow函数做的,需要注意的是对于不同的编译器,科学计数法格式中的指数位数不相同。图1是测试用例在我的机器上运行所得的结果。

九度OJ-题目1514:数值的整数次方_第1张图片

图1 测试用例在本机运行的结果

AC代码如下:

#include
#include
#include
 
/**
*  求浮点数的整数次幂
*  @param base  浮点数
*  @param exponent  整数次幂
*  @return void
*/
void doublePower(double base,int exponent)
{
    double result;
    result = pow(base,exponent);
    if(result > DBL_MAX)                     // 表示结果大于double的最大值 则输出INF
    {
       printf("INF\n");
    }
    else
    {
       // 按照指数格式输出浮点数,底数保留两位
       // 注意不同的编译器对于科学计数法格式输出中指数位数的差别
       printf("%.2lef\n",result);
    }
}
 
int main()
{
    int T;
    double base;
    int exponent;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%lf%d",&base,&exponent);
        doublePower(base,exponent);
    }
    return 0;
}
 
/**************************************************************
    Problem: 1514
    User: blueshell
    Language: C
    Result: Accepted
    Time:80 ms
    Memory:1004 kb
****************************************************************/


你可能感兴趣的:(九度OJ-剑指Offer)