【剑指offer】数值的整数次方
版权声明:本文为博主原创文章,未经博主同意不得转载。
https://blog.csdn.net/mmc_maodun/article/details/25506085
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25506085
剑指offer上的第十一题,九度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
- 提示:
-
请特别注意不同的编译器对于科学计数法格式输出中指数位数的区别。
建议使用九度Online Judge所使用的编译环境。
这里採用递归求次方的方法来写代码,思路例如以下:
AC代码例如以下:
#include<stdio.h>
#include<math.h>
#include<stdbool.h>
bool flag = true;
//求base的正数absExp次幂
double PowerAbs(double base,unsigned int absExp)
{
//递归退出的条件
if(absExp == 0)
return 1.0;
if(absExp == 1)
return base;
//递归求次方
double result = PowerAbs(base,absExp>>1);
result *= result;
//推断奇偶性
if(absExp&1 == 1)
result *= base;
return result;
}
//求base的exp次方
double Power(double base,int exp)
{
//底数为0。指数为负数的情况
if(fabs(base-0.0)<0.0000001 && exp<=0)
{
flag = false;
return 0.0;
}
unsigned int absExp = (unsigned int)abs(exp);
double result = PowerAbs(base,absExp);
if(exp<0)
result = 1.0/result;
return result;
}
int main()
{
int n,exp;
double base;
while(scanf("%d",&n) != EOF)
{
int i;
for(i=0;i<n;i++)
{
//每次都要先将flag置为true
flag = true;
scanf("%lf %d",&base,&exp);
double result = Power(base,exp);
if(flag)
printf("%.2ef\n",result);
else
printf("INF\n");
}
}
return 0;
}
/**************************************************************
Problem: 1514
User: mmc_maodun
Language: C
Result: Accepted
Time:80 ms
Memory:912 kb
****************************************************************/
【剑指offer】数值的整数次方的更多相关文章
- 剑指Offer 数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 思路: 要考虑边界,0,负数 AC代码: class Solution ...
- 剑指Offer——数值的整数次方
题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 分析: 快速幂,简单解释下, 当e的二进制为1001011, b^e=b^( ...
- 用js刷剑指offer(数值的整数次方)
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 保证base和exponent不同时为0 牛客网链接 思路 快速幂算法,举个例 ...
- 剑指offer--6.数值的整数次方
时间限制:1秒 空间限制:32768K 热度指数:362909 题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. class S ...
- (原) 剑指offer--之数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 初次看题觉得这题好简单,直接用库函数power()不就行了,仔细想了想,万 ...
- 剑指Offer-12.数值的整数次方(C++/Java)
题目: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 保证base和exponent不同时为0 分析: 注意base为0和expo ...
- 10-剑指offer: 数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 代码 class Solution { public: double Powe ...
- 剑指Offer09 数值的整数次方
/************************************************************************* > File Name: 09_Power. ...
- 【剑指 Offer II 001. 整数除法】同leedcode 29.两数相除
剑指 Offer II 001. 整数除法 解题思路 在计算的时候将负数转化为正数,对于32位整数而言,最小的正数是-2^31, 将其转化为正数是2^31,导致溢出.因此将正数转化为负数不会导致溢出. ...
- 剑指offer之关于整数的处理
首先是整数次方的处理 在这处理的时候有几个细节主义处理 1.当指数是负数的时候 2.当指数式0的时候 3.当不满足条件的时候要抛出异常 再一个就是常用的将一个树化为二进制的形式,或者是求整数的幂或者矩 ...
随机推荐
- [编程] TCP协议概述
TCP 协议概述 1.TCP提供一种面向连接的.可靠的字节流服务. 2.两个应用程序通过TCP连接交换8bit字节构成的字节流. 3.每个TCP首部都包含源端和目的端的端口号,用于寻找发端和收端应用进 ...
- thinkphp 百度编辑器和layer简单用法
百度编辑器1.4.3.3和layer插件简单案例 :后台单页面管理 增删改查操作 此处为默认图片保存路径,如果要修改保存路径,需要修改config文件. 添加页. <extend name=&q ...
- Java使用递归的方法进行冒泡排序
对于递归来说,我只了解它的概念,没有具体使用过,近期也是尝试着用递归写了一下冒泡排序和大家分享,希望能帮助大家了解递归 递归是什么?通俗的讲:在方法内部调用自己 花了几分钟整出来的,下面是递归冒泡排序 ...
- 在JAVA中封装JSONUtil工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- ActiveMQ 控制面板信息含义
Number Of Consumers :表示消费者数量: Number Of Pending Messages :等待消费的消息,这个是当前未出队列的数量: Messages Enqueued :进 ...
- php面向对象精要(2)
1,self与parent关键字 >self指向当前的类,常用来访问静态成员,方法和常量 >parent指向父类,常用来调用父类的构造函数和方法和成员,也可以用来访问常量 <?php ...
- HDU5840(SummerTrainingDay08-B 树链剖分+分块)
This world need more Zhu Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- Chrome Extension 实战
想起个问题,线上项目js要有bug,怎么进行调试修改. ------------- 想起来,方法应该是,拦截线上的js的请求,转到本地代码上进行调试... ------------- 网上看到 Chr ...
- ionic开发之Android的focus起作用,而iOS不起作用
基于ionic的iOS的hybird APP无法使用focus获取焦点和键盘的问题. 解决办法就是: 原本APP的配置文件config.xml里面默认有一句 这句话的大概意思就是键盘的显示需要用户去触 ...
- 使用ES6+Vue+webpack+gulp构建新一代Web应用
1.推荐学习网站:Vue.js中国 2.Demo环境搭建: 2.1环境配置 安装nodejs环境,具体内容可以百度: 新建一个文件夹: mkdir VUE-ES6-WebPack 全局安装gulp: ...