JZ12 数值的整数次方算法笔记

算法题解

JZ12 数值的整数次方

解法抄录了部分牛客解题思路分享

1. 暴力解法

i如果小于0,则为正数倒数的-i次方;如果是正数,则可以通过循环i次获得答案

2. 递归的快速幂

假设我们求图片说明 ,如果我们知道图片说明 ,那么图片说明 ,所以图片说明

但是还有个小问题,如果n是偶数,那么上述没问题。

如果n是奇数,图片说明 , 比如图片说明

3. 非递归的快速幂

将n转化为二进制数,例如10转为1010,那么

10 = 0 * 2的零次方 + 1 * 2的一次方 + 0 * x的二次方 + 1 * 2的三次方

那么res = x的( 0 * 2的零次方 + 1 * 2的一次方 + 0 * x的二次方 + 1 * 2的三次方)次方

即遇到1就乘,同时无论是否遇到一,x都为原来的二次方。

posted @ 2021-04-20 15:15  Jennyism丶  阅读(121)  评论(0编辑  收藏  举报