У меня проблемы с вызовом статического рекурсивного метода в Java - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь сложить элементы в массиве, используя рекурсивный метод.Тем не менее, я не могу выполнить метод, так как я получаю ошибку.Итак, поскольку я использую параметры в статическом методе, есть ли способ выполнить его на основе моего кода?

import java.util.Scanner;
public class Harro {
    public static void main(String[] args) {
        input();
    }

    private static void input() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Lower bound: ");
        int lower = scanner.nextInt();
        System.out.print("Upper bound: ");
        int upper = scanner.nextInt();
        arrayForm(upper, lower);
    }

    private static void arrayForm(int upper, int lower) {
        int b = 0;
        int a = Math.abs(lower) + Math.abs(upper);
        int array[] = new int[a];
        for (int i = 0; i < array.length; i++) {
            array[i] = lower + i;
        }
        summation(array[], b);
    }

    public static int summation(int array[], int b) {
        if (b > array.length) {
            System.out.println("Cannot continue");
            return 0;
        } else{
            int result = array[b] + summation(array, b + 1);
            System.out.println("recursion call: " + b);
            System.out.println("sum: " + result);
            System.out.println("parameter 1: " + array[b]);
            System.out.println("parameter 2: " + array[b + 1]);
            return result;
        }
    }
}

Ответы [ 2 ]

3 голосов
/ 10 марта 2012

Изменить эту строку

summation(array[], b);

до

summation(array, b);

[] обозначает тип массива, вам нужен только идентификатор.

0 голосов
/ 10 марта 2012
  private static void arrayForm(int upper, int lower)
  {
    int b = 0;
        int a = Math.abs(lower) + Math.abs(upper);
    int array[] = new int[a];
        for (int i = 0; i < array.length; i++)
    {
        array[i] = lower + i;
    }
    summation(array, b);
  }

Ошибка компиляции при этом вызове суммирования.Ваш код сейчас компилируется, но все еще есть ошибки времени выполнения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...