Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 直到n项的连平方根_Java - Fatal编程技术网

Java 直到n项的连平方根

Java 直到n项的连平方根,java,Java,如何使用Java执行以下程序: sqrt(2+sqrt)(2+sqrt)(2.…直到n个术语) 请尽快帮我。 我只是一个编程新手 提前感谢。假设当n=1表示sqrt(2),当n=2表示sqrt(2+sqrt(2)) double twoPlusSqrt(int n){ if(n

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

请尽快帮我。 我只是一个编程新手


提前感谢。

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

double twoPlusSqrt(int n){
if(n<1){
抛出新的IllegalArgumentException(“n必须大于0”);
}else如果(n==1){
返回数学sqrt(2);
}否则{
返回Math.sqrt(2+twopulssqrt(n-1));
}
}

您希望计算机反复重复相同的两个步骤-添加两个并对结果进行平方根运算。因为当
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);
double result=0.0;
用于(int计数器=0;计数器
递归可能是一个值得研究的概念。你能向meOP解释一下吗?他说:“我只是编程的初学者。”。使用递归的解决方案对这样的人来说是最好的吗?@DavidWallace我认为早期接触递归是好的,也是大多数程序员处理此程序的自然方式。如果OP试图学习,我认为这是一个很好的问题示例,希望他们能花时间理解:)@我认为这个程序应该是:double result,result1=0.0;for(int counter=0;counterdouble result = 0.0; for (int counter = 0; counter < n; counter++ ) { result = Math.sqrt(result + 2); } System.out.println(result);