黑马程序员技术交流社区
标题:
求黄金分割数
[打印本页]
作者:
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