B2013 4 黄金连分数

六月ゝ 毕业季﹏ 提交于 2020-03-11 12:56:51

import java.math.BigDecimal;
import java.math.BigInteger;

//黄金年分数
//换成分数,有规律
//double无法表示精度如此长的数 ,需要用到BigInteger
public class B20134 {
    public static void main(String [] agru)
    {
        BigInteger a=BigInteger.ONE;
        BigInteger b=BigInteger.ONE;
        for(int i=1;i<=500;i++)
        {
            BigInteger t=b;
            b=a.add(b);
            a=t;
        }
        BigDecimal res=new BigDecimal(a,110).divide(new BigDecimal(b,110),BigDecimal.ROUND_HALF_DOWN);
        System.out.println(res.toPlainString().substring(0,103));
    }
}

通过f提高or循环的i可以提高准确度。

最后输出的103位去掉个位的0和小数点,还剩下101位,看看最后一位的多少,四舍五入一下,变成100位小数,即为答案。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!