【剑指Offer面试编程题】题目1514:数值的整数次方---九度OJ

题目描述:

给定一个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
【解题思路】这个题目初看起来应该是一个比较low的题目,因为这样的需求确实一个函数pow就能完成,而且用累乘的效果也是一样的。所以在题目中直接用pow函数来做了,只需要注意base为0时,如果exponet为负则为一个无穷大的数,要单独处理一下。输出时此采用“%.2ef”的格式就可以满足题目的要求。

AC code:

#include <cstdio>
#include <cmath>
using namespace std;
 
int main()
{
  int n;
  while(scanf("%d",&n)!=EOF)
  {
    double base;
    int expo;
    for(int i=0;i<n;++i)
    {
      scanf("%lf%d",&base,&expo);
      if(base-0<1e-7 && expo<0)
      {
        printf("INF\n");
        continue;
      }
      double re=pow(base,(double)expo);
      printf("%.2ef\n",re);
    }
  }
  return 0;
}
/**************************************************************
    Problem: 1514
    User: huo_yao
    Language: C++
    Result: Accepted
    Time:80 ms
    Memory:1108 kb
****************************************************************/
题目链接:http://ac.jobdu.com/problem.php?pid=1514

九度-剑指Offer习题全套答案下载:http://download.csdn.net/detail/huoyaotl123/8276299

posted @ 2014-12-19 20:08  huoyao  阅读(182)  评论(0编辑  收藏  举报