Пытаюсь получить сумму всех чисел.
Например:
public static void testArray() {
int myArray[] = {3, 5, 7, 12};
for (int i = 0; i < myArray.length; i++) {
int i2 = i + 1;
if (i2 >= myArray.length - 1) {
i2 = 0;
i2 = 0;
}
int sum = myArray[i] + myArray[i2];
System.out.println(sum);
}
}
Да, да, я знаю, что этот код - кусок бреда, который даже близко не выполняет свою функцию, но я уже голову себе сломал и далеко я не математик (и не программист).
Как же мне найти сумму чисел в массиве, при условии что длина массива может быть произвольной, а числа в нем разные, не имеющие какой либо последовательности?
Честно не понял вопроса. В начале говорится - пытаюсь получить сумму некоторых чисел... а что значит некоторых?? Если всех чисел, то это очень просто сделать:
public static void testArray() {
int myArray[] = {3, 5, 7, 12};
int sum = 0;
for (int i = 0; i < myArray.length; i++) {
sum = sum + myArray[i];
}
System.out.println(sum);
}
В Java 8 можно в 1 строку с помощью stream
int myArray[] = {3, 5, 7, 12};
int total = IntStream.of(myArray).sum();
аналогично можно использовать класс Arrays
Arrays.stream(myArray).sum()
Метод stream
имеет перегрузки для примитивных типов и обобщенный вид, что подойдет для массивов других типов.
Существует несколько способов найти сумму элементов в массиве:
Используя Java 8 Stream API (сначала с помощью метода Arrays::stream
преобразовываем массив в поток целых чисел, затем получаем сумму этого потока методом Stream::sum
)
int array[] = {3, 5, 7, 12};
int sum = Arrays.stream(array).sum();
Цикл по элементам (for-each
цикл)
int array[] = {3, 5, 7, 12};
int sum = 0;
for (int element : array)
sum += element;
Цикл с использование индексов
int array[] = {3, 5, 7, 12};
int sum = 0;
for (int i = 0; i < array.length; ++i)
sum += array[i];
Онлайн примеры кода:
for-each
/**
* Sum of all elements from 1 to 1000
*/
final int sum = Stream.iterate(1, n -> n + 1).limit(1000).mapToInt(el -> el).sum();
public class test {
public static int[] myArray;
public static void main(String[] args) {
int myArray[] = {3, 5, 7, 12};
System.out.print(sum(myArray));
}
public static int sum(int[] arr) {
return sum(arr, 0, 0);
}
public static int sum(int[] arr, int sum, int count) {
sum += arr[count];
if (count < arr.length - 1) return sum(arr, sum, count + 1);
return sum;
}
}
for (int i = 0; i < arraySize; i++) {
numbers[i] = numberOfArrayElements.nextInt();
sum = sum + numbers[i];
}
Считаем сумму двух чисел. Если находится, возвращаем TRUE
:
public class moed2AQuation2A2015 {
public static void main(String args[]) {
int arr[] = {-2, 3, 5, 7, 12};
System.out.println(sum2(arr, 19));
}
public static boolean sum2(int[] arr, int num) {
return sum2(arr, num, 0, arr.length - 1);
}
public static boolean sum2(int[] arr, int n, int first, int second) {
int summa = arr[first] + arr[second];
if (summa == n) return true;
if (second < first && first == second) return false;
if (first < arr.length - 1 && second != first)
return sum2(arr, n, first, second - 1) || sum2(arr, n, first + 1, second);
else return false;
}
}
/**
* calculate sum of the array
*/
public static void main(String[] args) {
int myArray[] = {3, 5, 7, 12};
System.out.print(sum(myArray));
}
public static int sum(int[] arr) {
return sum(arr, arr.length - 1);
}
public static int sum(int[] arr, int n) {
if (n == 0)
return arr[0];
else
return arr[n] + sum(arr, n - 1);
}
Вот 3 способа, от самого примитивного, до нормального. Сильно не критикуйте, сам только учусь.
import java.util.Arrays;
// сумма всех элементов массива, способ первый
class BlaBlaBla1 {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
for (int i = 0; i < nums.length; i++) sum += nums[i];
System.out.println("1ый способ = " + sum);
}
}
// сумма всех элементов массива, способ второй
class BlaBlaBla2 {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
sum = Arrays.stream(nums).sum();
System.out.println("2ой способ = " + sum);
}
}
// сумма всех элементов массива, способ третий: FOR-EACH
class BlaBlaBla3 {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
for (int x : nums) sum += x;
System.out.println("3ий способ = " + sum);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Задача кэшировать некие поступающие объекты отчетов, но в заранее заданном объемеЧто-то вроде new ArrayBlockingQueue<Report>(100), но при определенных...
Создаю простое приложение для CRUD операцийИспользую postgresql+hibernate+java jdk 11+javafx(jfoenix)
Это какой-то новый компонент - выезжающая снизу панель? Несколько раз её виделКак её сделать?
Есть таблицы: Call, Call_Fixation(id значения других таблиц хранит), и HotlinesМне нужно вывести значения как на картинке, но в месте где "13:00:00 Trevor Helpline 2" у меня...