Java 直到n项的连平方根
如何使用Java执行以下程序: sqrt(2+sqrt)(2+sqrt)(2.…直到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
提前感谢。假设当
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);