6-Java-C(无穷分数)

题目描述:

无穷的分数,有时会趋向于固定的数字。
请计算【图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));
    }

}

 

posted @ 2017-03-04 21:47  暹罗siam  阅读(283)  评论(0编辑  收藏  举报