跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 领英面试题: x 的 n 次幂
未分類
27 3 月 2021

领英面试题: x 的 n 次幂

领英面试题: x 的 n 次幂

資深大佬 : zzzrf 7

描述

实现 pow(x, n). (n 是一个整数) 不用担心精度,当答案和标准输出差绝对值小于 1e-3 时都算正确

在线评测地址

样例 1

输入: x = 9.88023, n = 3 输出: 964.498 

样例 2

输入: x = 2.1, n = 3 输出: 9.261 

样例 3

输入: x = 1, n = 0 输出: 1 

注意 n 可能是负数, 需要求一下倒数, 可以在一开始把 x 转换成倒数, 也可以到最后再把结果转换为倒数.

那么现在我们实现 pow(x, n), n 是正整数的版本:

二分即可: 有 xn=xn/2∗xn/2xn=xn/2∗xn/2, 因此可以在 O(logn) 的时间复杂度内实现.

又叫快速幂. 有递归实现和循环实现的版本.

还可以参考一下 fast power 中的二进制的做法。

public class Solution {     /**      * @param x the base number      * @param n the power number      * @return the result      */     public double myPow(double x, int n) {         boolean isNegative = false;         if (n < 0) {             x = 1 / x;             isNegative = true;             n = -(n + 1);       // Avoid overflow when n == MIN_VALUE         }          double ans = 1, tmp = x;          while (n != 0) {             if (n % 2 == 1) {                 ans *= tmp;             }             tmp *= tmp;             n /= 2;         }                  if (isNegative) {             ans *= x;         }         return ans;     } } 

更多题解参考

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具