x的n次幂

2023-11-10

题目描述:
实现 pow(x, n) ,即计算 x 的 n 次幂函数。
样例:
输入: 2.00000, 10
输出: 1024.00000
说明:
-100.0 < x < 100.0
n 是 32 位有符号整数,其数值范围是 [-2147483648, 2147483647] 。
分析:
计算x 的 n 次幂:如果采用常规解法循环n次对想相乘,当x=0.000001,n=2147483647会超时。
所以考虑x的n次幂等于x的n/2次幂x的n/2次幂(n为偶数时)
n为奇数时x的n次幂等于x的(n-1)/2次幂
x的(n-1)/2次幂
要注意考虑到x=0和n=-2147483648的情况。

public double myPow(double x, int n) {
		 if(x==0)
			 return 0;
		 if(x==1)
			 return 1;
		 if(n==0)
			 return 1;
		 double re=1;
		 double temp=x;
		 int i=0;
		 if(n<0&&n!=Integer.MIN_VALUE)
			 i=-n;
		 else if(n==Integer.MIN_VALUE)
			 i=Integer.MAX_VALUE;
		 else
			 i=n;
		 for(;i!=0;i=(i>>1)) {
			 if((i&1)==1)
				 re=re*x;
			 x=x*x;
		 }
		 if(n<0) {
			 if(n==Integer.MIN_VALUE)
				 re*=temp;
			 re=1.0/re;
		 }
		 return re;
	 }
	 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

x的n次幂 的相关文章

随机推荐

  • 【Git】如何在Vscode中使用码云(Gitee)实现远程代码仓库与本地同步?(新手图文教程)

    一 安装git 直接参照下面的链接就OK Git Git的下载 安装与配置教程 图文 敦厚的曹操的博客 CSDN博客 git下载教程 Git Git的下载与安装教程 图文https blog csdn net dxnn520 article
  • 高防CDN和高防IP防护的不同之处

    网站的运行离不开服务器 服务器在使用的过程中不可避免的会遇到一些攻击 需要做好相应的安全防护 那么 在安全防护上 服务器使用CDN与高防IP具体有什么不同之处呢 一 IP数量 CDN是一组ip的防护 是共享的ip 高防ip独享的ip防护 二
  • 2021-10-17 stm32f103 睡眠模式唤醒

    1 开启 睡眠时钟 2 打开 WFI 3 GPIO 1 GPIO内部电路图 下面转载 https blog csdn net xiewenhao12 article details 89030398 1 根据设备原理图查看IO外部引脚连接电
  • 13.108.Spark 优化、Spark优化与hive的区别、SparkSQL启动参数调优、四川任务优化实践:执行效率提升50%以上

    13 108 Spark 优化 1 1 25 Spark优化与hive的区别 1 1 26 SparkSQL启动参数调优 1 1 27 四川任务优化实践 执行效率提升50 以上 13 108 Spark 优化 1 1 25 Spark优化与
  • pluto实现分析(5)

    本文档的Copyleft归yfydz所有 使用GPL发布 可以自由拷贝 转载 转载时请保持文档的完整性 严禁用于任何商业用途 msn yfydz no1 hotmail com 来源 http yfydz cublog cn 7 内核接口
  • ABAP 发邮件(三)

    转自http blog sina com cn s blog 7c7b16000101bnxk html SAP ABAP 发邮件方法三 OO Report ZSENDEMAIL08 REPORT zsendemail08 CONSTANT
  • R:数据对象及类型

    数据对象 R语言创建和控制的实体被称为对象 object 它们可以说变量 数组 字符串 函数或者其它通过这些实体定义的更一般的结构 structures 在R语言里 对象是通过名字创建和保存的 R对象的名称必须以一个英文字母打头 并由一串大
  • 【Vue】动态监听localStorage或sessionStorage中数据的变化:

    1 需求 一个页面数据变化要改变另一个页面 甚至整个项目的数据变化 2 在main js中 description 监听本地储存的值变化 param number type 1 localStorage 2 sessionStorage p
  • QT在vs2019上配置流程

    一 安装VS2019 2 安装Qt5 15 VS2019只能安装QT5 14版本以上 5 15版本以上需要在在线安装平台下载安装 在QT官网https download qt io 中找到official releases gt onlin
  • Anaconda安装深度学习框架(TensorFlow,Pytorch)教程

    有道云链接 1 用anaconda创建虚拟环境 在这之前 我们需要确定服务器上安装了anaconda 使用下面命令查看 whereis anaconda anaconda data softwares opt anaconda2 bin a
  • 单例模式的几种实现

    单例模式的几种实现 在开发中 我们总是会遇到使用单例模式的情况 今天就来总结一下几种实现单例模式的方法 1 饿汉式 public class SingletonDemo1 类初始化时 立即加载该对象 没有延时加载的优势 由于加载类时 天然的
  • VIM查看使用的配置文件

    最近在配置NeoVim 配置文件怎么放都不对 最后只能想办法找它用的哪一个配置文件 可以使用stdpath把它的配置文件路径回显一下 echo stdpath config 如果不清楚stdpath怎么使用 可以直接调一下help stdp
  • 华为OD机试真题- 取出尽量少的球【2023Q2】【JAVA、Python、C++】

    题目描述 某部门开展Family Day开放日活动 其中有个从桶里取球的游戏 游戏规则如下 有N个容量一样的小桶等距排开 且每个小桶都默认装了数量不等的小球 每个小桶所装的小球数量记录在数组bucketBallNums中 游戏开始时 要求所
  • 使用Hibernate连接MySQL数据库,MySQL连接超时断开的问题

    最近让人头疼的一个问题 就是服务器在不确定的时点会出现关于数据库连接的Exception 大致的Exception如下 org hibernate util JDBCExceptionReporter SQL Error 0 SQLStat
  • texstudio配置编译路径

    texstudio必须配置好编译路径 否则无法编译运行 选项 设置 命令 pdflatex 点击打印符号 找到pdflatex exe打开即可 Xelatex操作步骤相同
  • tomcat替换class文件后重启不生效问题记录

    清空Tomcat work catalina 里面的内容 清空Tomcat temp里面的内容 将Tomcat class文件中 引用 被修改的class 的那几个方法的class 都替换一下 正确操作 但是依然不生效 发现了问题但是不知道
  • 编码:KR字符串匹配,一个简单到领导都看得懂的算法

    常怀感恩 生活或许就不会处处深渊 这几天看了 柔性字符串匹配 觉得很有意思 书是好书 只是这个脑子是不是猪脑就不知道了 于是秉着知之为知之 不知为不知的精神 我准备再次去请教一下我的领导 在一个月黑风高的夜晚 我给领导发了个消息 领导这么回
  • 2023自动化测试需知的4项测试工具!

    一般来说学自动化会建议大家先学selenium 因为最早的时候 自动化就代表selenium 进入测试行业就开始做接口测试 而且现在基本每个公司都需要接口测试 今天就和大家聊一下接口测试的工具 一 Robot Framework 机器人框架
  • Ubuntu添加和设置默认中文字体

    参考 https blog csdn net gengyuchao article details 101215243 首先 通过命令 fc list lang zh 可以查看已安装的中文字体 默认为Ubuntu系统自带的中文字体 安装新字
  • x的n次幂

    题目描述 实现 pow x n 即计算 x 的 n 次幂函数 样例 输入 2 00000 10 输出 1024 00000 说明 100 0 lt x lt 100 0 n 是 32 位有符号整数 其数值范围是 2147483648 214