Печать суммы массива
Я пытаюсь создать функцию 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
должен быть статическим для вызова в основном методе.