黑马程序员技术交流社区

标题: 求黄金分割数 [打印本页]

作者: wangyafeng1990    时间: 2013-10-20 18:38
标题: 求黄金分割数
比较简单的一种是用连分数:

                  1
    黄金数 = ---------------------
                        1
             1 + -----------------
                          1
                 1 + -------------
                            1
                     1 + ---------
                          1 + ...

                           

    这个连分数计算的“层数”越多,它的值越接近黄金分割数。

  求出黄金分割数的足够精确值,要求四舍五入到小数点后100位。求大神解答,拜托了
作者: The_Wizard    时间: 2013-10-21 09:13
看看,这样可以吗?
package answer5;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
* 求黄金分割点,要求四舍五入到小数点后100位。
* @author Administrator
*
*/
public class GoldPoint {
       
        //BigDecimal:不可变的、任意精度的有符号十进制数
        BigDecimal result = new BigDecimal(1);
        BigDecimal one = new BigDecimal(1);
       
        public static void main(String[] args) {
                GoldPoint g = new GoldPoint();

                int precision = 0;       
               
                for(int i = 0; i < 100; i++){
                        g.result = g.one.divide(g.result.add(g.one), 100, RoundingMode.HALF_UP);
//                        g.print();
                        precision = g.result.precision();
//                        System.out.println(precision);
                }
                g.print();
        }
       
        public void method() {
                result = one.divide(result.add(one));
                print();
                System.out.println(result.precision());
                if(result.precision() < 100)
                        method();
        }
       
        public void print(){
                System.out.println(result);
        }
}
作者: The_Wizard    时间: 2013-10-21 09:19
因为第一次用这个BigDecimal的类,我是想用用method()的,结果错误很多……,让人头疼啊,你就别用了,不过可以去掉main里边的循环语句,改成method()试试,可以了解下里边的错误。main里边的循环是你说的层次。我这有什么没有符合要求的说一僧,不能让我白费了。
作者: 李江    时间: 2013-10-21 18:18
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2