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。递归不是一件简单的事情,要更好地理解它,请尝试想象代码流
示例:recSq(2)

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