也不开学,只能自己找点事情干了。O(∩_∩)O

虽然周六还有一场考试,周五还有一个Presentation,周四还有一下午的实验,周三还有一上午的课,可是,我 都 不 想 干 ~

又不会做什么大事情,只能做点小题目来觉得自己没有闲着,干了大事情,难搞。/(ㄒoㄒ)/~~

牛客做题的第一天,只写了两道题,还看了别人的思路,脑子不在状态,写不出来自己的代码/(ㄒoㄒ)/~~

【前面这一大段废话是两周前写的,现在才来干正事,我真是个废物】

思路一:库函数

函数 pow(x,y) 是计算 x 的 y 次方,所以,令 y=1/3 即可求数 x 的立方根。

思路二:二分法

public static double getCubeRoot(double input)
{if(input==0||input==1||input==-1)return input;else{double min = 0;double max = input;double mid = 0;// 注意,这里的精度要提高一点,否则某些测试用例无法通过while ((max - min) > 0.001) {mid = (max + min) / 2;if (mid * mid * mid > input)max = mid;else if (mid * mid * mid < input)min = mid;elsereturn mid;}return max;//这种情况是:在满足精确度的条件下无精确值,选择max作为近似值来返回。//同样也可以选择min作为近似值来返回}
}

我觉着这个代码还是很简单的,主要是理解二分法的思想:
在这里,是先把立方根的范围锁定在0-x(x是输入的值)。

mid=(min+max)/2;
然后让 mid 连续三次乘,结果为 y
然后比较 y 与 input 的关系。
如果y 大于 input 时,max=mid,范围缩小了一半;
如果y 小于 input 时,min=mid,范围缩也小了一半;
如果y 等于 input 时,代表 mid 就是数 input 的立方根,可直接返回。

思路三:牛顿迭代法

首先要先了解牛顿迭代法是什么:

假如输入 a ,求数 a 的立方根,那么 x^3-a=0 这个方程的解就是我们所求的。

而方程 f(x) 的牛顿迭代格式为:

所以,所求方程的牛顿迭代公式为:

了解了牛顿迭代法的内容,我们就可以来写代码了。

public static void main(String[] args) {double x,y,x1,x2;Scanner in = new Scanner(System.in);x = in.nextDouble();System.out.println("请手动输入一个初始近似值");x1 = in.nextDouble();in.close();x2= (x/x1/x1+2*x1)/3;    //牛顿迭代公式的第一次使用y = fun(x2,x);System.out.printf("%.1f",y);
}
public static double fun(double x2,double x)
{if(Math.abs(x2*x2*x2-x)<0.0000001) //递归的结束条件return x2;elsereturn fun((x/x2/x2+2*x2)/3,x);//牛顿迭代公式的递归使用
}

OK,终于把这个在草稿箱里躺了两周的文章写完了。睡觉咯,晚安。

求解一个数的立方根(想不懂都难)相关推荐

  1. 这样理解PWM,想不懂都难!

    关注.星标公众号,直达精彩内容 PWM有非常广泛的应用,比如直流电机的无极调速,开关电源.逆变器等等.个人认为,要充分理解或掌握模拟电路.且有所突破,很有必要吃透这三个知识点: PWM 电感 纹波 P ...

  2. 450g吐司烘烤温度_解决这24个问题,吐司面包想失败都难!

    原标题:解决这24个问题,吐司面包想失败都难! 制作吐司 对于烘焙人来说 是再基础不过的操作 但很多人都会发现 吐司看似简单 真正动起手来却小问题不断 前段时间网上流行的段子 所以今天我们就来一个问答 ...

  3. 服务器发送了一个意外的数据包 received 3_肝不好,身体会发出3个信号求救,每天吃1物,肝想不好都难!...

    原标题:肝不好,身体会发出3个信号求救,每天吃1物,肝想不好都难! 随着现代生活水平提高,人们很多坏习惯都出来了,熬夜.酗酒.都给肝脏造成了一定的负担,因为本是我们人体最重要的解毒器官,由于大家&qu ...

  4. icmp报文_用侦察兵的故事趣讲ICMP和Ping,看完想忘都难!

    无论是在宿舍,还是在办公室,或者运维一个数据中心,我们常常会遇到网络不通的问题.那台机器明明就在那里,你甚至都可以通过机器的终端连上去看.它看着好好的,可是就是连不上去,究竟是哪里出了问题呢? ICM ...

  5. 硬盘安装工具cgi_300元固态硬盘,INTEL洋垃圾1PB写入之后,寿命依然100%想死都难...

    本文的意义不是评测,也不是SHOW,更不是分享. 只是跟大家聊聊天儿. 比如,同样价格,洋垃圾和全新产品,哪个更好? 一,INTEL SATA接口洋垃圾老皇帝S3700 VS 最新64层TLC的545 ...

  6. 身为程序员的你一定要学会Python这个神操作,会这个想单身都难

    女朋友在外地我一直在琢磨怎么去关心她,怎么样让她觉得时时刻刻都陪在她的身边,所以我就默默的学会了这个神操作,时时刻刻我都能关注到她 让她觉得满满的爱 这次的这个项目,弄了好几天,主要在tkinter上 ...

  7. 倒车入库技巧图解,不想过关都难!----fwqlzz love is for ever

    经过了一番理论实战,现在终于到了可以上车"摸车"的环节了,但是小编提醒大家可别高兴太早哦,因为科目二难点有很多的哦,其中最难的要数倒车入库了吧!别害怕,今天小编就给大家来详细的讲解 ...

  8. 学会这十五招,斗地主想输都难

    1.将手上的牌打成单双不过(单双不过指人家不管打单还是双都是你大).单双不过很重要,要多考虑.如对A.2.单 自己上手,如打对A,是错误的.应该打单,因为可排除对方用对2接打对A后全把对.连.三带打完 ...

  9. 计算机哪部分坏了导致开机慢6,为什么电脑开机慢反应也慢?排查完这6点,系统速度想慢都难...

    电脑或者笔记本使用的时间长了之后,普遍会出现开机慢.反应慢这些情况,对于电脑高手来说,这些都是毛毛雨,但是大部分用户都是电脑这方面的技术小白,对此就显得一筹莫展,只能将就使用着. 事实上,这类问题的处 ...

最新文章

  1. 如何评价马云和马斯克在世界人工智能大会的对话?
  2. 20170208--正则表达式
  3. 【实战 Ids4】║ 控制台密码模式搭配Ocelot网关
  4. Android之 ListView滑动时不加载图片
  5. 使用vmstat和iostat命令进行Linux性能监控
  6. 我参与的一个项目的继续总结:经验篇
  7. Python使用ffmpeg下载m3u8拼接为视频
  8. 【转】马拉松式学习与技术人员的成长性
  9. 小米怎么设置语音识别权限 | 手游网游页游攻略大全
  10. android常用窗口动画,android 自定义dialog,窗口动画,
  11. 一个简单的通用序列数据结构
  12. Springboot - 构建基于XML交互的Restful应用程序
  13. 手撸一个外卖点餐系统后台,可以写上简历的实战项目!
  14. WireShark的过滤语法
  15. 翻译图片中文字的网站
  16. java卡牌游戏详解
  17. 天翼云linux远程密码不对,天翼云主机远程连接
  18. 认知世界(1)--学与思
  19. Android导航组件Navigation从入门到精通
  20. 图形 1.4 PC手机图形API介绍

热门文章

  1. 基于Chebyshev混沌映射的麻雀搜索算法-附代码
  2. 转载:振动分析—频带
  3. 这6大类超伤肝食物多吃恐罹癌
  4. ICRA的5篇最佳操作机械手论文逐个看 | ICRA 2017
  5. 什么是价值流图?大量的例子
  6. SpringCloud微架构-李兴华-专题视频课程
  7. java 实现批量注册---实现类层(含入参参数校验)
  8. webpack5的tree shaking值得了解
  9. HackRequests+BeautifulSoup+re爬取网站网址
  10. 踩着别人的脚印***