题目描述:
无穷的分数,有时会趋向于固定的数字。
请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
请填写该浮点数,不能填写任何多余的内容。
正确算法:
此题需要用递归,题目的意思就是1/(1+2/(2+3/(3+(?)))),当到达一定的次数后,其实?这里的值已经可以微小到忽略不计了,经计算,如4/(4+?)的值大约等于0.9,所以在n等于15或更大是我们return 0.9或0.8,这就是递归的出口。最后会发现其实答案都是一样的。
public class 无穷分数 { public static double f(double i) { if (i == 15) { return 0.8; } return i / (i + f(i+1)); // return 0; } public static void main(String[] args) { System.out.printf("%.5f",f(1)); } }