Java平方函数
有人能用几句话来解释这些方法吗。它们是用来计算平方的。一个是使用递归实现,另一个是正常的Java平方函数,java,recursion,implementation,Java,Recursion,Implementation,有人能用几句话来解释这些方法吗。它们是用来计算平方的。一个是使用递归实现,另一个是正常的 public static int sq(int n) { int i = 0 ; int result = 0 ; while(i < n){ result = result + 2*i + 1 ; i = i + 1 ; } return result ; } public static int rec
public static int sq(int n)
{
int i = 0 ;
int result = 0 ;
while(i < n){
result = result + 2*i + 1 ;
i = i + 1 ;
}
return result ;
}
public static int recSq(int n)
{
if(n == 0){
return 0 ;
} else {
return recSq(n - 1) + 2*(n - 1) + 1 ;
}
}
public static int implementSq(int n)
{
int i ;
int result = 0 ;
for(i = 0 ; i < n ; i++){
result = result + 2*i + 1 ;
}
return result ;
}
publicstaticintsq(intn)
{
int i=0;
int结果=0;
而(i
为什么要用递归或循环来解决这么简单的问题
public static int sq(int n) {
return n * n;
}
就这样。- 第一种方法是使用循环将数字乘以2n倍,以增加局部变量i
- 第二种方法完全相同,但使用递归。每一步递减n,最后一个案例返回0。所有调用都将再次调用具有不同参数(参数值为0除外)的同一函数,然后该函数将返回0。递归不是一件简单的事情,要更好地理解它,请尝试想象代码流
4 recSq(2)
| 我想这一定是一个家庭作业,否则做任何事都是疯狂的。因此,我可以建议使用一个集成的开发环境(例如Netbeans),然后使用它逐行遍历代码。这是迄今为止理解代码所做工作的最简单方法。如果我们只是告诉你,你不会从中得到任何东西。它们在结果函数中都是相同的。sq使用while循环,而implementSq使用for循环。recSq是一个递归函数,它为每个递归调用调用一个n-1(直到n等于零)加上2*(n-1)+1)。他可能在试图理解它们是做什么的,而不是如何平方一个数字。我只是想了解复活和实现
4 recSq(2)
|<- 1 reqSq(1)+2*1+1
|<-0 reqSq(0)+2*0 + 1
|<- 0