如何使用Java执行以下程序: sqrt(2 + sqrt(2 + sqrt(2 .....到n个术语
)请尽快帮助我。 我只是编程的初学者。
提前致谢。
答案 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);