《剑指Offer》-006 - Java版快速幂 -解决n的m次方的问题
如题 (总结要点)
- 原文链接 :
1.主题
package blank;
/**
* 类的详细说明 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
* 思路 : for循环 --》快速幂走一波
* 坑点:
* 1. int类型的整数exponent ,可能为负值、0 ,没有规定是正整数
* // return Math.pow(base,exponent ); 快速搞定
*/
public class Solution {
public double Power(double base, int exponent) {
if(exponent==0){
return 1;
}
int p=exponent;
if(exponent <0){
p=-p;
}
double ret = 1;
// 快速幂
while(p>0){
// 奇数
if((p & 1) == 1){
p/=2;
ret*=base;
base*=base;
}else{
p/=2;
base*=base;
}
}
if(exponent <0){
ret = 1.0/ret;
}
return ret;
}
}
3.测试
package blank;
import java.util.UUID;
/**
* 类的详细说明 ; 测试类
*
* @author SongZeShan
* @version 1.0
* @Date 2019/7/12 16:40
*/
public class Test {
public static void main(String[] args) {
Solution solution = new Solution();
//8.0
//0.7071635669330316
//
System.out.println(solution.Power(2, 3));
System.out.println(solution.Power(1.4141, -1));
System.out.println(solution.Power(1.4141, 1));
System.out.println(Math.pow(1.4141, -1));
}
}
测试结果
8.0
0.7071635669330316
1.4141
0.7071635669330316
《剑指Offer》-006 - Java版快速幂 -解决n的m次方的问题的更多相关文章
- 【剑指offer】Java版代码(完整版)
原文地址:https://blog.csdn.net/baiye_xing/article/details/78428561 一.引言 <剑指offer>可谓是程序猿面试的神书了,在面试中 ...
- 剑指offer】Java版代码(完整版)
转自:剑指offer]Java版代码(完整版) 转自:[剑指offer] JAVA版题解(完整版)
- 剑指offer(java版)【转】
面试题 2 :实现单例模式 1. 饿汉式单例类 public class SingletonClass { private static final SingletonClass instance=n ...
- [转]剑指offer之Java源代码
一.引言 <剑指offer>可谓是程序猿面试的神书了,在面试中帮了我很多,大部分面试的算法题都会遇到原题或者是类似的题.但是书上的代码都是C版的,我在这里整理了一份Java版的代码供大家学 ...
- 剑指Offer(第二版)面试案例:树中两个节点的最低公共祖先节点
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/74612786冷血之心的博客) 剑指Offer(第二版)面试案例:树 ...
- 剑指offer题目java实现
Problem2:实现Singleton模式 题目描述:设计一个类,我们只能生成该类的一个实例 package Problem2; public class SingletonClass { /* * ...
- 【剑指offer】Java实现(持续更新中)
面试题3 二维数组中的查找 Leetcode--74 Search a 2D Matrix /*Java Write an efficient algorithm that searches for ...
- (python)剑指Offer(第二版)面试题14:剪绳子
题目 给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],…,k[m].请问k[0]k[1]…*k[m]可能的最大乘积是多少 ...
- 【目录】《剑指Offer》Java实现
如题: 1) 找出数组中重复的数字 2) 不修改数组找出重复的数字 3) 二维数组中的查找 4) 替换空格 5) 从尾到头打印链表 6) 重建二叉树 7) 二叉树的下一个结点 8) 用两个栈实现队列 ...
随机推荐
- Azure DevOps Server (TFS) 修改工作项附件大小限制
1. 问题描述 当上传工作项附件时,系统提示"附件大小限制" 2.解决方案 2.1 默认设置 默认情况下,Azure DevOps Service和Team Foundation ...
- Java并发之多线程下竞态条件概念的理解
一.简述 竞态条件(Race Condition):计算的正确性取决于多个线程的交替执行时序时,就会发生竞态条件. 二.常见竞态条件分析 最常见的竞态条件为 1.先检测后执行 执行依赖于检测的结果,而 ...
- spark 资源动态分配
'spark.shuffle.service.enabled': 'true', 'spark.dynamicAllocation.enabled': 'false', , , , 'spark.sq ...
- scala 正则
package com.program import scala.util.matching.Regex object RegexTest { def main(args: Array[String] ...
- Python 中如何判断 list 中是否包含某个元素
在python中判断 list 中是否包含某个元素: ——可以通过in和not in关键字来判读 例如: abcList=['a','b','c',1,2,3] if 'a' in abcList: ...
- mknod命令的使用
1.mknod命令 在Linux系统下,mknod命令可用于系统下字符设备文件和块设备文件的创建. (1)命令语法 mknod(选项)(参数) (2)常用选项说明 -Z:设置安全的上下文. -m:设置 ...
- [转帖]10分钟看懂Docker和K8S
10分钟看懂Docker和K8S https://zhuanlan.zhihu.com/p/53260098 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司. 这 ...
- APS.NET MVC + EF (02)---ADO.NET Entity FrameWork
2.1 Entity Framework简介 Ado.net Entity Framework 是Microsoft推出的ORM框架. 2.1.1 什么是ORM 对象关系映射(Object Relat ...
- 前端开发常用 JS 方法
1,获取文件本地url,在上传之前预览 /** * 获取图片嗯滴url,在上传之前预览 * @param file 选择的图片文件 * @returns {*} url */ getFileLocat ...
- final,finally,finalize之间的区别。
fianl:可以修饰类.变量.方法.修饰类不能被继承,修饰变量只能赋值一次,修饰方法不能被重写. finally是try语句体中的一个语句体,不能单独使用,用来释放资源. finalize()是在ja ...