持续平方根直到n个术语

时间:2015-07-19 08:28:23

标签: java

如何使用Java执行以下程序: sqrt(2 + sqrt(2 + sqrt(2 .....到n个术语

请尽快帮助我。 我只是编程的初学者。

提前致谢。

2 个答案:

答案 0 :(得分:0)

假设n=1表示sqrt(2)n=2表示sqrt(2 + sqrt(2))

double twoPlusSqrt(int n) {
        if (n < 1) {
            throw new IllegalArgumentException("n must be greater than 0");
        } else if (n == 1) {
            return Math.sqrt(2);
        } else {
            return Math.sqrt(2 + twoPlusSqrt(n - 1));
        }
}

答案 1 :(得分:0)

您希望计算机执行的操作是反复重复相同的两个步骤 - 添加两个并对结果进行平方根。从n=1开始,您希望结果为sqrt(2),因此您的起始值应为0 - 因此,在第一步中,您可以添加两个平方根结果,以及以sqrt(2)结束。

因此,最简单的方法是在没有递归的情况下执行此操作。

double result = 0.0;
for (int counter = 0; counter < n; counter++ ) {
    result = Math.sqrt(result + 2);
}
System.out.println(result);