剑指offer代码解析——面试题11求a的b次方

/**
 * 题目:实现a的b次方
 * @author 大闲人柴毛毛
 */
public class Power {
	/**
	 * 分析:a的b次方就是将a连乘b次,
	 * 本题的逻辑性不难,关键在于程序的健壮性,
	 * 需要将可能的情况考虑全面。
	 * @param a 底数
	 * @param b 指数
	 * @return a的b次方
	 */
	public static double power(double a,int b){
		//若底数为0,则结果为0
		if(Power.equal(a,0.0))
			return 0;
		
		//若指数为0,则结果为1
		if(b==0)
			return 1;
		
		//计算a^|b|,若指数为负数,则取b的绝对值
		double c = a;//c存放计算结果
		for(int i=0; i<(b<0?-b:b)-1; i++){
			c *= a;
		}
		
		//输出结果
		if(b<0)
			return 1/c;
		else
			return c;
	}
	
	
	/**
	 * 由于float、double都存在精度问题,float、double进行计算时得不到精确的结果,
	 * 因此误差若小于0.0001,我们就认为近似相等,因此需要定义判断近似相等的函数。
	 */
	
	
	/**
	 * 比较两个double是否近似相等
	 * PS:若误差在0.0001内就认为相等
	 * @param a
	 * @param b
	 * @return 是否近似相等
	 */
	public static boolean equal(double a, double b){
		if(a-b<=0.0001 && a-b >=-0.0001)
			return true;
		else
			return false;
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

MIT牛人梳理脉络详解宏伟现代数据体系

在过去的一年中,我一直在数学的海洋中游荡,research进展不多,对于数学世界的阅历算是有了一些长进。 【为什么要深入数学的世界】 作为计算机的学生,我没有任...

18310
来自专栏AI研习社

「无中生有」计算机视觉探奇

计算机视觉 (Computer Vision, CV) 是一门研究如何使机器“看”的科学。1963年来自MIT的Larry Roberts发表的该领域第一篇博士...

3106
来自专栏人工智能头条

“无中生有”计算机视觉探奇

1444
来自专栏华章科技

计算机视觉这一年:这是最全的一份CV技术报告

The M Tank 编辑了一份报告《A Year in Computer Vision》,记录了 2016 至 2017 年计算机视觉领域的研究成果,对开发者...

541
来自专栏Albert陈凯

机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1)

机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1) 注:机器学习资料篇目一共500条,篇目二开始更新...

3188
来自专栏CreateAMind

神经网络里的信息存储在哪里?如何更好的存储和提取?

神经元的活性和神经元之间的权重都存储了重要信息,有没有更好的存储方式呢?如何向生物记忆学习呢?

642
来自专栏自然语言处理

程序员眼中的统计学10

程序员眼中的统计学系列是作者学习笔记整理而得。随着科学技术的发展和机器智能的普及,统计学在机器智能中的作用越来越重要。正如吴军先生在《数学之美》一书中阐述的,基...

622
来自专栏AI科技评论

悉尼科技大学CVPR 2018论文:无监督学习下的增强人脸关键点检测器

本文作者为悉尼科技大学博士生董宣毅(Xuanyi Dong),他根据 CVPR 2018 录用论文 Supervision-by-Registration: A...

753
来自专栏机器之心

学界 | 伯克利提出强化学习新方法,可让智能体同时学习多个解决方案

选自BAIR Blog 作者:Haoran Tang、Tuomas Haarnoja 机器之心编译 参与:Panda 强化学习可以帮助智能体自动找到任务的解决策...

2847
来自专栏人工智能LeadAI

TensorFlow从1到2 | 第三章:深度学习革命的开端:卷积神经网络

关于全连接神经网络(Full Connected Neural Network,FC)的讨论已经说的不少了,本篇将要介绍的是,从2006年至今的神经网络第三次浪...

3335

扫码关注云+社区