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

如何递归计算数组中负数的个数(Java)?

薛彭薄
2023-03-14

我需要使用这个方法:

public static int countNegative(double[] numbers, int count){ }

然后使用递归计算存储在数组中的最大数、负数的计数以及正数的和。因此,您将在Assignment9类中创建递归方法findMax、countNegative和ComputeSum积极,它们将由main方法调用。

具体来说,必须实现以下递归方法(这些方法不应包含任何循环):

public static double findMax(double[] numbers, int count)  -> It finds the maximum number in the array, count is the number of elements

在数组中

public static double findMax(double[] numbers, int count){
        if(numbers.length - 1 == count)
            return numbers[count];
        else 
            return Math.max(numbers[count], findMax(numbers, count+1));
    }
public static int countNegative(double[] numbers, int count){
        int i=0;
        if(numbers[count]<0)
            i=1;
        if(numbers.length-1==count)
            return count;
        else
            return i+countNegative(numbers,count+1);
     }

如果我能算出这个负的,我就能算出计算的正的。

计数可以是你需要的任何东西。我把它更多地用作FindMax中的索引。

共有1个答案

朱英范
2023-03-14

count有什么用?如果是索引,就有意义了:

public static int countNegative(double[] numbers, int index)
{
    if(index == numbers.length) return 0;
    return (numbers[index] < 0 ? 1 : 0) + countNegative(numbers, index + 1);
}

并这样称呼它:

int count = countNegative(array, 0);
 类似资料:
  • 我有一个任务,它获取一个int值“n”和一个Int Array作为参数,并且应该返回一个布尔值。该方法应该确定给定数组中有多少个“n”。如果数字是偶数,则方法应该返回true,否则返回false。如果数组的长度为0,它也应该返回“false”。 我设法做到的是: 老实说,我真的很困惑,我不知道该怎么办。我真的已经尽力了,但是我在这项任务上工作的时间越长,我就越不理解。感谢任何帮助,并提前感谢您!:

  • 是否有一种方法可以编写递归函数,该函数打印数字中的位数,以便: -它是一个无效函数 -"if"条件是if(num==0),返回 -“else”将调用递归。 我看到了两种不同类型的代码,其中一种是“if”条件具有递归调用,另一种是用于“return”。但这不是我想要的。 我很不擅长递归,并试图通过自己编写代码来理解它,但没有成功。 这是我的代码(我明白为什么它打印122而不是3,但我真的不知道如何以

  • 问题内容: 我的模数做错了吗?因为在Java 中应该评估但我得到。 问题答案: 负数模数的两种定义都在使用-有些语言使用一种定义,而另一种使用。 如果要为负输入获得负数,则可以使用以下方法: 同样,如果你使用的是在否定输入中返回负数的语言,并且你希望使用正数:

  • 问题内容: 我正在尝试计算由文本字段接收的输入填充的数组的总数,均值和中位数。我设法算出了总数和均值,但我只是无法获得中位数。我认为在执行此操作之前需要对数组进行排序,但是我不确定如何执行此操作。这是问题吗,还是我没有找到另一个问题?这是我的代码: 问题答案: Java中的Arrays类具有静态的排序功能,您可以使用调用该功能。

  • 我试图计算由TextField接收的输入填充的数组的总数、平均值和中位数。我已经算出了总数和平均数,但中位数无法计算出来。我认为在我可以这样做之前需要对数组进行排序,但我不确定如何这样做。是这个问题,还是还有一个我没有找到的?下面是我的代码:

  • 我知道这个问题已经被问过很多次了,但是我的问题有点不同。这个任务要求我不验证一个字符串是否是回文——而是验证一个字符串中有多少回文(返回为“int”)。这应该使用迭代函数来完成 以下是我的迭代函数代码供参考: 我只是很难把它转换成递归函数。感谢所有帮助!