当前位置: 首页 > news >正文

leetcode(力扣)剑指 Offer 16. 数值的整数次方 (快速幂)

文章目录

  • 题目描述
  • 思路分析
  • 完整代码

题目描述

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。

示例 1:
输入:x = 2.00000, n = 10
输出:1024.00000

示例 2:
输入:x = 2.10000, n = 3
输出:9.26100

思路分析

暴力会超时,标的中等难度,所以肯定不是直接for的。

快速幂方法:

再看一遍题目,求x的n次幂。

直接记结论。

1.将n变为二进制,然后取反,结果记为temp
2.遍历temp的每一位数字,为1的地方进入循环。
3.循环中式子如下:

在这里插入图片描述
既 每一项是x (2i),这里的‘i’就是temp为‘1’的下标。

4.将每一项的结果 相乘起来就行了。

5.对于输入的n为负数的情况,吧x变为倒数,然后n变为正数就可以继续算了。

完整代码

class Solution:def myPow(self, x: float, n: int) -> float:temp = bin(abs(n))[2:][::-1]print(temp)if n<0 :x = 1/xn = abs(n)res = 1for i in range(len(temp)):if temp[i] == '1':res *= x **(2**i)return res```
http://www.lryc.cn/news/106304.html

相关文章:

  • git命令分类合集
  • 微信小程序打开地图的方法
  • 快手头部主播合体,二驴祁天道直播首秀销售额破亿
  • Golang Devops项目开发(1)
  • Django系列之DRF简单使用
  • 新闻标题文本分类任务
  • 自己实现MyBatis 底层机制--抽丝剥茧(上)
  • Django后端执行成功或失败状态码
  • Prometheus中的关键设计
  • Centos7 安装yum
  • 无涯教程-Lua - 简介
  • 【第一阶段】kotlin语言引用数据类型
  • BUU [网鼎杯 2020 朱雀组]phpweb
  • 使用WebMvcConfigurationSupport后导致原来返回的json数据变为了xml的解决方法
  • 如何判断一个枚举值是否存在(Check if an Enum Value Exists in Java)
  • 网工内推 | 网络安全工程师,最高15K,有高温补贴
  • Android—ADB命令
  • 音视频知识:MPEG-4、H264、MP4、AAC之间的关系
  • 智能门锁的无线通讯协议有哪些?主要特点是什么?
  • 机器学习——异常检测
  • 小研究 - 一种复杂微服务系统异常行为分析与定位算法(一)
  • 代码版本管理工具 git
  • 【计算机视觉中的 GAN 】如何稳定GAN训练(3)
  • 一文讲清楚地图地理坐标系
  • 助力青少年科技创新人才培养,猿辅导投资1亿元设立新基金
  • 代码随想录算法训练营之JAVA|第十八天| 235. 二叉搜索树的最近公共祖先
  • IO进程线程第五天(8.2)进程函数+XMind(守护进程(幽灵进程),输出一个时钟,终端输入quit时退出时钟)
  • 物联网远程智能控制设备——开关量/正反转百分比控制
  • echarts图表基本使用
  • 排序进行曲-v1.0