高精度小数第一题

import java.util.*;
import java.math.*; public class Main {
public static void main(String []args) {
Scanner cin=new Scanner(System.in); //求最靠近sqrt(5)的值mid
BigDecimal esp=new BigDecimal("0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001");
BigDecimal L=new BigDecimal("2");
BigDecimal R=new BigDecimal("3");
BigDecimal mid=L;
while(true) {
BigDecimal dis=R.subtract(L);
if(dis.abs().compareTo(esp)<=0)break; mid=L.add(R).divide(new BigDecimal("2"));
if(mid.multiply(mid).compareTo(new BigDecimal("5"))<=0)//mid偏小
L=mid;
else
R=mid;
}
//System.out.println(mid); String sa,sb;
while(cin.hasNext()) {
sa=cin.next();
sb=cin.next(); BigDecimal a=new BigDecimal(sa);
BigDecimal b=new BigDecimal(sb);
if(a.compareTo(b)>0) {
BigDecimal tmp=a;
a=b;
b=tmp;
}
BigDecimal k=b.subtract(a); //c=(sqrt(2)+1)/2
BigDecimal c=mid.add(BigDecimal.ONE);
c=c.divide(new BigDecimal("2")); BigDecimal res=c.multiply(k);
res=res.setScale(0,BigDecimal.ROUND_FLOOR); //System.out.println(res); if(res.equals(a))
System.out.println("0");
else System.out.println("1");
}
}
}

高精度小数BigDecimal+二分——java的更多相关文章

  1. 51nod 1873 初中的算术【Java BigDecimal/高精度小数】

    1873 初中的算术 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 Noder现在上初三了,正在开始复习中考.他每天要计算型如 (a× a× a× ...

  2. Java中的高精度整数和高精度小数

    在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差: 在下面的代码中,我们验证了,当两个float型的数字相加,得到的结果和我们的预期结果是有误 ...

  3. BigDecimal类(高精度小数)

    位置:java.math.BigDecimal 作用:提供高精度小数数据类型及相关操作 一.基本介绍 BigDecimal为不可变的.任意精度的有符号十进制数,其值为(unscaledValue * ...

  4. poj 1131 Octal Fractions(高精度小数进制转换) Java

    虽然题目那么长其实就是把8进制的浮点数转换成10进制,为了练习Java Biginteger 类 我这里用的是Java,也可以用数组模拟. import java.math.BigDecimal; i ...

  5. 程序设计入门——C语言 第5周编程练习 1高精度小数(10分)

    1 高精度小数(10分) 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1)之间的任何浮点数都可以表达为两个正整数的商,为了 ...

  6. test 5.1 高精度小数(10分)

    请写一个程序,输入一个分数,计算出它的小数形式.无论是否可以除尽,输出最多小数点后200位. 题目内容 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现 ...

  7. Java开发笔记(三十)大小数BigDecimal

    前面介绍的BigInteger只能表达任意整数,但不能表达小数,要想表达任意小数,还需专门的大小数类型BigDecimal.如果说设计BigInteger的目的是替代int和long类型,那么设计Bi ...

  8. FZU 2032 高精度小数加法

    题目描写很没意思..就是说给出n个小数 求它们的总和 因为给出的小数点后最多16位而要求保存至12位 而能直接使用的最精确的double只能到12位 于是13的进位可能被忽略 于是不可以用double ...

  9. 2018.07.08 NOIP模拟 第K小数(二分)

    第K小数 题目背景 SOURCE:NOIP2016-AHSDFZ T1 题目描述 有两个正整数数列,元素个数分别为 N 和 M .从两个数列中分别任取一个数相乘,这样一共可以得到 N*M 个数,询问这 ...

随机推荐

  1. Android逆向之旅---Android应用的汉化功能(修改SO中的字符串内容)

    一.前言 今天我们继续来讲述逆向的知识,今天我们来讲什么呢?我们在前一篇文章中介绍了关于SO文件的格式,今天我们继续这个话题来看看如何修改SO文件中的内容,看一下我们研究的主题: 需求:想汉化一个Ap ...

  2. 经典JS 判断上传文件大小和JS即时同步电脑时间

    我也是新手,还是一个JS笨,有一些网站要实现的功能要自己写么? 答案是不会,去问同事大佬吧,闲简单.就在晚上看了一些其他大佬们写的JS效果, 代码很少.占用网站CPU也小的多.可以一用, 废话少扯.代 ...

  3. 使用nsenter进入docker容器后端报错 mesg: ttyname failed: No such file or directory

    通过nsenter 进入到docker容器的后端总是报下面的错,, [root@devdtt ~]# docker inspect -f {{.State.Pid}} mynginx411950 [r ...

  4. Linux下安装xwindow图形界面

    执行命令 yum -y groupinstall Desktop yum -y groupinstall "X Window System" 然后执行"startx&qu ...

  5. (DP)HDU - 1003 Max Sum

    这是一道DP入门题目,知识点是“最大连续子序列” 题目大意:给你一个长度为n的数字序列,取其中一段连续的序列,要求和最大: 分析:这是一道裸题,没有什么花里胡哨的东西,主要是写出状态转移方程 dp[i ...

  6. Django 利用JWT实现前后端分离的Token验证

    一.什么是Token? Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器会生成一个Token并将此Token返回给客户端,以后客户端只需带上这个Token前来请 ...

  7. 学习php的步骤是什么?

    PHP应该学什么,如何学好PHP (注:原文来自传智播客) 一些共性问题,大致是: 1. 应该怎样学习PHP,学习的顺序是怎样的? 2. PHP学好后,可以做什么事情? 3. 听得懂课,但是一旦自己独 ...

  8. 对象与json字符串相互转化

    在java编程中,json字符串和对象的相互转化十分常用,下面我们就对象如何转化为json字符串以及json字符串如何转化为对象进行简要介绍,以便在代码中能方便使用. 1.依赖 本次介绍的方法依赖ja ...

  9. go 学习之函数

    个人把go函数理解分三种: 1.普通函数 普通函数声明: func name(parameter-list) (result-list) { body} package main import &qu ...

  10. JavaScript阶乘算法

    题目: 计算所提供整数的阶乘. 如果使用字母n代表一个整数,则阶乘是所有小于或等于n的整数的乘积. 阶乘通常简写成 n! 例如: 5! = 1 * 2 * 3 * 4 * 5 = 120 使用递归实现 ...