当前位置: 首页 > 知识库问答 >
问题:

如何使用以除数和除数为参数的递归创建int[]除法?

水昊阳
2023-03-14

这个问题必须用递归来解决。

我试图使用“else”后面的代码,通过一个int-temp来计算可以被除数的次数(temp=被除数-除数),来找到商。

INT r应该是商,但是因为师()不是一个int,而是一个数组,我不能应用递归。我也试图在结果[0]中插入师(),但是同样的事情,返回的是一个数组,而不是一个int。

结果是一个包含两个元素的数组:商和除法的余数。

我一直在练习递归,但我迷失在递归和数组的混合中

我可能可以用for循环解决这个问题,但正如我所说,必须使用递归。

只需要修改其他和返回之间的代码。如果这应该很容易,我看不出来。

我以前一直在寻找答案,但我找到的答案使用int作为返回,而不是数组。

这是我测试失败的代码(正如你在Main中看到的,测试红利是13,除数是3):

public class Main{

    /*
     * Returns an array with the quotient and remainder of the
     * integer division
     *
     * @param dividend a positive int
     * @param divisor a positive int
     */
    static int[] division(int dividend, int divisor){

        int result[] = {0, dividend};

        if ( dividend < divisor ){
            return result;
        } else{

            ***int temp = dividend - divisor;
            int r = 1 + division(temp , divisor);*** 

            return result;
        }

    }

    public static void main(String[] args){
        int result[]=division(13,3);
        System.out.println("Quotient: "+ result[0]
               + " Remainder: "+ result[1]);
    }
}

共有1个答案

祝宾白
2023-03-14

您失败了,因为您试图将int添加到数组中,并将结果分配给int。相反,您应该将1添加到递归调用返回的数组的第一个位置,然后返回该数组。

static int[] division(int dividend, int divisor){

    int result[] = {0, dividend};

    if ( dividend < divisor ){
        return result;
    } else{
        result = division(dividend - divisor, divisor);
        result[0]++;
        return result;
    }

}
 类似资料:
  • 我使用guzzle作为http客户端来测试我的symfony api。 有一个url选项在留档,但我如何通过userid 当我用curl测试的时候 curl-i-X删除http://localhost/us/serenify/web/app_dev.php/userapi/delete/1/6 我的api运行良好,显示了适当的响应。 但是我不能用guzzle测试它,因为我找不到传递参数的选项。

  • 我想检查一下,例如: 12 - 13 - 14 - 15 12/3=4- 13 / 3 = 4.33 - 14 / 3 = 4.67 - 15/3=5- 我想创建一个while循环,在这个循环中,我使用想要除以3的数字作为“x”。 所以: 类似的东西,但我不知道检查总和是否为十进制数的命令。 然后我想用

  • 下面是我的小品课: my ColorEllipse是一个椭圆2D Double,ColorRectangle是一个矩形2D Double。它们都是ColorShape的子类,继承了它的方法。

  • 问题内容: 代码输出: 为什么值不同?为什么第二个输出看起来如此? 问题答案: 的浮点表示形式不正确: 那是因为浮点算法只是一种近似,尤其是当您超出了CPU可以准确建模的范围时(因为浮点是在硬件中处理的)。 整数除法不必将数字表示为浮点数,它只需要除以整数即可,在Python中整数可以任意增大而不会造成精度损失。 另请参阅: 浮点算法: Python教程中的 问题和局限性 每个程序员应了解的浮点运

  • 问题内容: -1 / 5整数除法应该返回什么?我对此行为完全感到困惑。我认为数学上应该为0,但是python和ruby返回-1。 为什么不同的语言在这里表现不同?请有人解释。谢谢。 问题答案: 简短的答案: 语言设计者可以选择在进行整数除法时,其语言是四舍五入为零,负无穷大还是正无穷大。不同的语言做出了不同的选择。 长答案: Python和Ruby的语言作者都认为向负无穷大舍入比向零四舍五入更有意

  • 29.3.3 创建和删除JPA数据库 默认情况下,仅当您使用内置数据库(H2、HSQL或Derby)时才会自动创建JPA数据库。您可以使用spring.jpa.*属性显式地配置JPA。例如,要创建和删除表,您可以将以下内容添加到application.properties中。 spring.jpa.hibernate.ddl-auto=create-drop Hibernate本身用于自动创建和