B3627 立方根 題解

· · 题解

B3627 立方根 題解

管理员注:

阅读本文章前,请先阅读 \ \texttt{ShanCreeper} B 题库题解的声明,并了解由于课程需要不展示代码。

如需系统学习相关知识点请报名【洛谷-基础算法计划】

Part 1 使用 cbrt (100 pts):

我们要知道,有一个神奇的函数:cbrt

这个函数,特别的神奇:能求出一个数的立方根。

最重要的是,虽然数据范围大到 10^{15},但是,我们的 cbrt 能使用 long long

我爱死你了 /se /se。

Part 2 二分法 (100 pts):

其实这道题的用意是二分对吧。

我们通过样例可以发现,本题输出最大为 10^5,所以可以使用二分思想,不断取中间值 \texttt{mid},计算 \texttt{mid}^3 是否为 n

Part 3 使用 pow

学过语法的人应该都知道怎么用 pow 求立方根吧。

我们可以用 pow(n,1.0/3.0) 来求一个数字的立方根。

使用 long double 可以满分。

Part 4 使用 explog

\because a^{(\log_a(b))}=b n \log_a(b) = \log_a(b^n) \therefore \exp(\log(n) \div 3) = n^{\frac{1}{3}}

使用 long longlong double 可以满分。

Part 5 牛顿迭代法

a_{(n+1)}=\frac{2 \times a_{(n)}+\frac{Y}{a_{(n)} \times a_{(n)}}}{3}