剑指offer-面试题11.数值的整数次方
题目:实现函数double Power(double base,int exponent),求base的
exponent次方。不得使用库函数,同时不需要考虑大数的问题.
这道题看似很简单:
然而需要考虑的方面到不少:
1.如何处理指数为负数,将负数当成正数处理 对结果求倒
2.当指数为负数的时候并且底数为0的时候如何处理
3.当指数为0底数为0的情况
这里我们这样考虑,把底数为0的所有输入处理为无效输入,返回0
代码实现如下:
#include <iostream>
using namespace std; double Power(double base,int exponent)
{
bool zerosflag=false;
if(base<0.00001&&base>-0.00001)
{
zerosflag=true;
} if(zerosflag)
{
return 0.0;
} if(exponent==)
{
return 1.0;
} bool flagminus=false;
if(exponent<)
{
flagminus=true;
exponent=-exponent;
} double answer=1.0;
for(int i=;i<exponent;i++)
{
answer*=base;
} if(flagminus)
{
return /answer;
}
else
{
return answer;
} } int main(int argc, char* argv[])
{
double base;
int exponent;
double answer;
while()
{
cout<<"Please input base number: ";
cin>>base;
cout<<"Please input exponent number: ";
cin>>exponent;
answer=Power(base,exponent); if(answer==0.0)
{
cout<<"Invalid Input: base="<<base<<" exponent="<<exponent;
}
else
{
cout<<"The Power is: "<<answer;
}
cout<<endl;
} return ;
}
测试截图如下:
当然剑指offer中还提出了一种递归的解法,大家可以自行参考。
对了这里有个小说明:
由于计算机在表示小数都有误差,我们不能直接用等号判断两个小数是否相等。
如果两个小数的差的绝对值很小,就可以认为它们相等。
剑指offer-面试题11.数值的整数次方的更多相关文章
- 剑指Offer:面试题11——数值的整数次方(java实现)
题目描述: 实现函数double Power(double base, int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题 思路:本题的重点考察内容是 ...
- 剑指offer_面试题11 数值的整数次方_考察代码的完整性
测试通过代码: package t0825; public class Power { public static void main(String[] args){ System.out.print ...
- 剑指Offer - 九度1514 - 数值的整数次方
剑指Offer - 九度1514 - 数值的整数次方2013-11-30 00:49 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponen ...
- 剑指offer(12)数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 题目分析 这道题用传统的方法也可以做,只不过效率太低,这里我们用到快速幂的方法 ...
- 剑指offer十二之数值的整数次方
一.题目 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 二.思路 1.传统方法计算,时间复杂度O(n) 2.递归方式计算,时间复杂度O ...
- 【剑指Offer】12、数值的整数次方
题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解题思路: 本题看似比较简单,是一个简单的指数运算,但需要完 ...
- 剑指offer编程题Java实现——面试题11数值的整数次方
题目: 实现函数double power(double base,int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 解题思路:最一般的方法实现数值 ...
- 剑指offer 面试题43. 1~n整数中1出现的次数
leetcode上也见过一样的题,当时不会做 看了一下解法是纯数学解法就没看,结果剑指offer上也出现了这道题,那还是认真看下吧 对于数字abcde,如果第一位是1,比如12345,即计算f(123 ...
- 剑指offer——面试题11:旋转数组的最小数字
#include"iostream" using namespace std; int GetMinNumber(int *data,int len) { ,right=len-, ...
随机推荐
- Java反编译插件jad
原文地址:http://www.cnblogs.com/JimLy-BUG/p/5405868.html 1.首先下载jar文件:net.sf.jadclipse_3.3.0.jar 下载 2. ...
- Mysql 创建用户并对其赋予操作权限
授权命令GRANT 语句的语法如下: GRANT privileges (columns) ON what TO user IDENTIFIEDBY "password" WITH ...
- OS error set
Failed to resolve/decode supposed IPv4 source addres Failed to resolve/decode supposed IPv4 source a ...
- VS快捷编码方式
概念: 代码段是将预先定义好的可重用代码块快速插入到代码文件中,代码段提高了开发效率,增强了代码的可重用性:既节约了时间,又实现了不同开发人员间代码的共享.同时也可保证同一项目中代码风格的统一. ...
- Cookie知识点小结
问题是什么?有哪些技术?如何解决? 1. Cookie 1)完成回话跟踪的一种机制:采用的是在客户端保存Http状态信息的方案 2)Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在 ...
- What a Mess(二分)
What a Mess Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...
- Biorhythms(中国剩余定理)
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 127339 Accepted: 40342 Des ...
- Atitit.软件guibuttonand面板---os区-----linux windows搜索文件 目录
Atitit.软件guibuttonand面板---os区-----搜索文件 1. Find 1 2. 寻找文件夹 1 3. 2. Locate// everything 1 4. 3. Wherei ...
- What is NetApp's Cluster File System?
Data ONTAP GX: A Scalable Storage Cluster www.usenix.org/event/fast07/tech/full_papers/eisler/eisler ...
- IOS中对图片进行重绘处理的方法总结
一.CGImageRef是什么 CGImageRef是定义在QuartzCore框架中的一个结构体指针,用C语言编写.在CGImage.h文件中,我们可以看到下面的定义: ? 1 typedef st ...