Печать суммы массива

Я пытаюсь создать функцию sum тогда позвони в main, но я получаю ошибку во время компиляции, и я не понимаю, почему это неправильно.

class FindSum {
    int sum(int[] arr) {
        int sum = 0; // O(1)
        for (int i = 0; i < arr.length; i++) { // n times
             sum += arr[i]; // O(1)
        }
        return sum; // O(1)
    }

    // Driver program to test above functions
    public static void main(String[] args) {
        int arr[] = new int[]{5, 5, 10, 100, 10, 5};
        System.out.println(sum(arr));
    }
}

2 ответа

Вы вызываете нестатический метод из статического метода. Вы можете изменить сумму на статическую:

    public static int sum(int[] arr) {

или создать новый объект в главной функции:

public int sum(int[] arr) {
    int sum = 0; // O(1)
    for (int i = 0; i < arr.length; i++) { // n times
         sum += arr[i]; // O(1)
    }
    return sum; // O(1)
}

// Driver program to test above functions
public static void main(String[] args) {
    int arr[] = new int[]{5, 5, 10, 100, 10, 5};
    FindSum instance = new FindSum();
    System.out.println(instance.sum(arr));
}

Метод sum должен быть статическим для вызова в основном методе.

Другие вопросы по тегам