首页 > 其他分享 >数的三次方根

数的三次方根

时间:2024-02-06 17:12:51浏览次数:21  
标签:bd java BigDecimal double mid 方根 三次 import

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

public class 数的三次方根 {

    public static double binarySearch(double x ){
        double l = -10000;
        double r = 10000;
        // 如果保留6位就用1e-8,如果4位就用1e-4
        while ((r - l) > 1e-8){
            double mid = (l + r)/2;
            if (mid * mid * mid >= x){
                r = mid;
            }else {
                l = mid;
            }
        }
        return l;
    }


    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        double x = Double.parseDouble(br.readLine());
        x = binarySearch(x);
        // 由于java中的double没有自带固定小数点后位的函数,所以这里用格式化,通过转字符串,然后通过BigDecimal来处理,也可以用小数点分割,然后后面取出来6位和前面拼接,不过要单独处理进位,四舍五入还是上下取数都得自己定义,不如用函数
        BigDecimal bd = new BigDecimal(Double.toString(x));
        bd = bd.setScale(6, RoundingMode.HALF_UP);
        System.out.println(bd);
    }
}

 

标签:bd,java,BigDecimal,double,mid,方根,三次,import
From: https://www.cnblogs.com/YaoMa/p/18010037

相关文章

  • TCP 三次握手的性能优化
    今天分析下TCP三次握手中有哪些可以优化的地方,进而提升握手的性能。客户端的优化三次握手的首要目的就是为了同步序列号。有了序列号才可以进行后续的可靠性的传输。在TCP中有很多功能都是依赖序列号实现的,比如流量控制、消息重传等。在三次握手中序列号的同步是通过SYN报文同......
  • 第三次,第二章读后感
    第二章让我对计算机中数据的表示方式有了更深入的了解。在阅读这一章节后,我意识到了二进制数在计算机中的重要性,以及数据是如何被存储和处理的。首先,书中详细介绍了计算机中使用的二进制数系统。与我们所熟悉的十进制不同,计算机使用二进制来表示数据,这是因为电子开关只能处于两种......
  • TCP三次握手四次挥手
    一、基础理论1、TCP的标志位标志位含义SYN(synchronous)在建立连接时使用,表示请求同步序列号。当SYN=1时,该数据段用于发起一个连接。ACK(acknowledgement)用于确认接收到的数据段,如果ACK=1,确认应答的字段变为有效FIN(finish)在关闭连接时使用,当FIN=1时,表示发送......
  • 的平方根
    69.x的平方根(Easy)问题描述:实现intsqrt(intx)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例1:输入:4输出:2示例2:输入:8输出:2说明:8的平方根是2.82842...,由于返回类型是整数,小数部分......
  • 关于三次握手和四次挥手的详解
    我一看到TCP,啪就点进来了,很快啊。  TCP报文   一个完整的TCP报文头部共有20个字节,其中包括:源端口号(16位)和目的端口号(16位):再加上ip首部的源ip地址和目的IP地址可以唯一确定一个TCP连接。数据序号(16位):表示在这个报文段中的第一个数据字节序号。确认序号:仅当......
  • 第三次比赛E题.砝码
    //01背包变形(三类情况,不增不减,增砝码,减砝码)include<bits/stdc++.h>usingnamespacestd;constintN=110,M=200010,b=M/2;intv[N],f[N][M];intmain(){intn,sum;cin>>n;for(inti=1;i<=n;i++)scanf("%d",&v[i]),sum+=v[i];f[0][b]=true;for(int......
  • 计算一个数的算术平方根
    从键盘输入一个小于1000的数,输出它的算术平方根,若算数平方根不为整数,则向下取整。#include<stdio.h>#include<math.h>intmain(){ inta=0; intb=0; while(scanf("%d",&a)) { if(a>0&&a<1000) { break; } else { printf(&qu......
  • leedcode x的平方根
    暴力搜索classSolution:defmySqrt(self,x:int)->int:ifx>=100andx<10000:i=10elifx>=10000andx<1000000:i=100elifx>=1000000:i=1000else:i=0......
  • 计算机编程中的黑魔法编程是什么?如何求解一个浮点数的平方根倒数?计算机中的浮点数是如
    原视频:没有显卡的年代,这群程序员用4行代码优化游戏最原始的求解目标:(求一个浮点数的开方的导数)浮点数在计算机中的表示形式:对数的运算法则:A为a在计算机中的表示形式(二进制表示形式):求浮点数的平方根倒数的应用场景:这个情况,直白的说就......
  • TCP三次握手源码分析(服务端接收ACK&TCP连接建立完成)
    内核版本:Linux3.10内核源码地址:https://elixir.bootlin.com/linux/v3.10/source(包含各个版本内核源码,且网页可全局搜索函数)《TCP三次握手源码分析(客户端发送SYN)》《TCP三次握手源码分析(服务端接收SYN以及发送SYN+ACK)》《TCP三次握手源码分析(客户端接收SYN+ACK以及发送ACK......