题目表述

给定一个浮点数 n,求它的三次方根。

输入格式

共一行,包含一个浮点数 n。

输出格式

共一行,包含一个浮点数,表示问题的解。

注意,结果保留 6 位小数。

数据范围

-1000<=n<=1000

输入样例:

1000.00

输出样例:

10.000000

题目分析:

解法一:利用数学函数方法:

利用c++内置函数直接求出结果

#include<iostream>
#include<cmath>
using namespace std;
int main() {
    double a;
    scanf("%lf", &a);
    printf("%.6lf", cbrt(a));
    return 0;
}

解法二:利用二分方法

#include<iostream>
using namespace std;
double n;
int main() {
    cin >> n;
    double l = -1e4, r = 1e4;
    while (r - l > 1e-8) {
        double mid = (l + r) / 2;
        if (mid * mid * mid >= n) r = mid;
        else l = mid;
    }
    printf("%lf", l);
    return 0;
}

解法三:利用一般牛顿迭代法

按照解方程思想,给定一个浮点数n,求它的三次方根。
相当于求方程 f(x) = x^3 - n = 0 的解

#include <iostream>
#include <cmath>
using namespace std;
const double delta = 1e-8;
double f(double x, double n)  
{
    x = x - (x * x * x - n) / (3 * x * x);  //x为初值
    if (fabs(n - x * x * x) < delta)
        return x;
    return f(x, n);
}

int main()
{
    double n;
    scanf("%lf", &n);
    printf("%.6lf\n", f(n, n));
    return 0;
}

数的三次方根(二分方法的运用)相关推荐

  1. 算法之二分法(例子:数的范围,数的三次方根)

    写在前面 今天学习了二分法,整理了一下笔记,觉得是一种非常实用的方法 首先,学习历程重重困难,文章一定会难以避免的冗长,所以在前面先附上我制作的思维导图,大家可以先点进去看,思维导图是用的知犀思维导图 ...

  2. 790. 数的三次方根

    790. 数的三次方根 题目链接 题意 给定一个浮点数 n,求它的三次方根. 思路 二分答案 坑点 n 可能为负数 算法一:二分答案 时间复杂度 O(log2n)O(log_2n)O(log2​n) ...

  3. AcWing 790.数的三次方根

    题解:数的三次方根 题目描述 思路分析 代码实现 题目描述 题目链接: https://www.acwing.com/problem/content/792/ 思路分析 这个题的思路可以参考AcWin ...

  4. 数的三次方根 【AcWing】

    数的三次方根 [AcWing] 用二分查找算法求数的三次方根. C语言语法补充: 格式化 %lf , %f 用来输入输出浮点类型. %.6f用于确保结果小数点后留6位. #include<std ...

  5. oracle中按指定条数批量处理的方法

    oracle中按指定条数批量处理的方法 示例 --每处理10000条提交一次 loop insert into t2 select * from t1 where rownum <= 10000 ...

  6. Java黑皮书课后题第7章:*7.13(随机数选择器)编写一个方法,返回1到54之间的随机数,但不能是传递到实参中的数。指定如下方法头

    7.13(随机数选择器)编写一个方法,返回1到54之间的随机数,但不能是传递到实参中的数.指定如下方法头 题目 题目描述 可变长参数列表 破题 代码 运行实例 题目 题目描述 7.13(随机数选择器) ...

  7. php如何打出的正方形行列,javascript实现输出指定行数正方形图案的方法

    本文实例讲述了javascript实现输出指定行数正方形图案的方法.分享给大家供大家参考.具体如下: javascript实现输出指定行数的正方形图案:点击生成图案,会有2个提示框,1,输入图案的组成 ...

  8. ES6-函数中new.target 方法

    ES6-函数中new.target 方法 // 1. ECMAScript 5 中判断构造函数是否通过 new 关键字调用的写法function Person (fullName) {if (this ...

  9. C++获取文本文件字节数的一个小方法

    C++获取文本文件字节数的一个小方法 本博客转载自:http://blog.csdn.net/sayesan/article/details/45840337. 1 调用ifstream打开一个文件 ...

最新文章

  1. matplotlib.transforms
  2. python封装方法有几种_python之--------封装
  3. 基于web的甘特图,易度甘特图edogantt!
  4. 使用ros发布UVC相机和串口IMU数据
  5. 解决问题的反馈机制_谈谈HBase中的Nonce机制
  6. 它利用计算机和现代通信技术,现代通信技术复习概论
  7. Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:执行手动查询...
  8. ae插件Particle Projection for Mac(AE粒子投影插件)
  9. mysql 数据库 更新_mysql数据库更新
  10. python逢7跳过_python实现逢七拍腿小游戏的思路详解
  11. minifilter 与用户态的通信
  12. python读取properties文件_读取properties文件
  13. 基于java的商店销售管理系统
  14. 破解md5加密的方法
  15. 复杂性思维中文第二版 八、自组织临界
  16. bochs运行xp_bochs xp镜像完整免费版
  17. 优学院大学计算机基础课程答案,标准答案2020优学院形势与政策(全国版)2019-2020学年第一学期...
  18. 语言模型及RNN模型
  19. 遥感场景识别数据集(场景分类)
  20. 【UML统一建模思想】2万字超详细学习笔记(2)

热门文章

  1. 对回合制游戏的探讨以及想法
  2. 生命中最美的风景就是曾经遇见了你
  3. 如何看hbo_如何取消您的HBO Now帐户
  4. laydate自定义开始日期和结束日期
  5. 手机必备应用:狐猴浏览器,一站式开启浏览器的所有用法
  6. 第1关 Numpy创建数组 (educoder
  7. Lambda 构造方法引用 -- 类名::new
  8. 水浒歪传--郭德纲相声
  9. java勾股数_勾股数计算的Java
  10. Windows Server 2008R2 取消屏幕自动锁定