import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
// 0.6180340
// 精确小数位数
int n = 100;
String section = getGoldenSection(n);
System.out.println(section);
}
private static String getGoldenSection(int n){
// 初始化分母
BigDecimal denominator = new BigDecimal(0.618);
// 初始化分子
BigDecimal molecule = new BigDecimal("1");
for (int i = 1; i <= n; i++) {
// 如 1 + 1/x
BigDecimal add = denominator.add(molecule);
// 计算分数, 指定小数长度 n位,四舍五入
BigDecimal divide = molecule.divide(add, n, BigDecimal.ROUND_HALF_UP);
// 更新分母
denominator = divide;
}
return denominator.toString();
}
}
01-30
2388

10-10
1575

04-09
310
