Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
2 / 2 / 0
Регистрация: 14.12.2018
Сообщений: 37

Вывод суммы элементов лукового массива

18.12.2018, 21:19. Показов 3091. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Подскажите пожалуйста! Работаю в среде eclipse на java.Задание такое необходимо написать функцию которая будет считать сумму элементов лукового массива.Например массив-int [] arr={1,2,3,4,5,7};
Функция должна считать сумму первого элемента с последним, затем сумму второго элемента с предпоследним элементом и сумма элементов не должна быть больше 10 иначе возвращает 0 и т.д.(то есть условие такое: 1+7<10 возвращает 1, 2+5<10 возвращает 1 и т.д).Написала такой код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
static int isOnionArray (int[ ] a)
    {
        final int d=10;
        int sum=0;
        if(a.length > d ) return 0;
        
        
        
    for(int x=0;x<a.length;x++)
            {
        int i=a[x];
        int j=a.length-1;
        int leftNum=i;
        int rightNum=j;
          if(leftNum+rightNum<d)
          {
              x++;
             
              sum=leftNum+rightNum;
          }
        
        System.out.println (leftNum+"+"+rightNum+"="+sum);
        
    }
    return 1;
    }
 
    public static void main(String args[])
    {
        isOnionArray (new int [] {1,2,3,4,5,6,7});
    }
Результат:-
3+6=9
5+6=9
6+6=9
7+6=9


То есть leftNum перепрыгивает на два элемента больше а rightNum был указан как (a.length-1) но он даже с места не сдвинулся.Подскажите пожалуйста как корректно указать так чтобы leftNum двигалась на элемент больше правее с каждым циклом а rightNum двигалась на элемент левее с каждым циклом? Заранее Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.12.2018, 21:19
Ответы с готовыми решениями:

Вывод двухмерного массива и суммы элементов каждой строки
Дан нерегулярный массив который генерируется случайными числами: 1 2 3 5 6 1 1 6 1 2 3 1 1 2 3 5 как вывести колонку...

Вывод суммы положительных элементов массива
Есть программа, содержащая массив. Требуется вывести удвоенную сумму положительных элементов массива. Пока что не выводит ничего....

Вывод в label суммы элементов массива
private void button1_Click(object sender, EventArgs e) { int i;//номер элемента double elem; ...

22
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
18.12.2018, 21:27
Лучший ответ Сообщение было отмечено units как решение

Решение

Java
1
2
3
4
5
6
   int a[] = new int[]{1, 2, 3, 4, 5, 6, 7};
        for (int i = 0; i < a.length / 2; i++) {
            int sum = a[i] + a[a.length - i - 1];
            sum = sum < 10 ? sum : 0;
            System.out.println(sum);
        }
середину сам доделаешь
1
18.12.2018, 21:35

Не по теме:


а расскажите кто-нибудь, плиз, что такое луковый массив?

0
2 / 2 / 0
Регистрация: 14.12.2018
Сообщений: 37
18.12.2018, 21:36  [ТС]
Спасибо большое!
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
19.12.2018, 08:41
Цитата Сообщение от NiceJacket Посмотреть сообщение
что такое луковый массив?
скорее не сам массив, а способ работы с ним, т.е. слоями. Первый элемент с последним, второй с предпоследним и т.д..
1
2 / 2 / 0
Регистрация: 14.12.2018
Сообщений: 37
19.12.2018, 13:08  [ТС]
Да так и есть.
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
19.12.2018, 14:00
Лучший ответ Сообщение было отмечено units как решение

Решение

Цитата Сообщение от units Посмотреть сообщение
так и есть
маленькая иллюстрация:
Java
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
        int [] arr={1,2,3,1,4,5,7};
        int first = 0;
        int last = arr.length - 1;
        int summ;
        while (first < arr.length/2) {
            summ = arr[first++] + arr[last--];
            System.out.printf("Сумма %d и %d элементов = %d%n", first, last + 2, summ);
 
        }
    }
1
2 / 2 / 0
Регистрация: 14.12.2018
Сообщений: 37
19.12.2018, 14:32  [ТС]
Спасибо большое за ответ!
0
19.12.2018, 21:04

Не по теме:

Цитата Сообщение от NiceJacket Посмотреть сообщение
а расскажите кто-нибудь, плиз, что такое луковый массив?
Цитата Сообщение от Aviz__ Посмотреть сообщение
скорее не сам массив, а способ работы с ним, т.е. слоями. Первый элемент с последним, второй с предпоследним и т.д..
Прежде чем дочитать досюда, я знал что есть "луковый рыцарь", и как раз удалось лишь нагуглить "луковый суп" )))

0
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
19.12.2018, 21:09
Цитата Сообщение от ViktorFX Посмотреть сообщение

Не по теме:



Прежде чем дочитать досюда, я знал что есть "луковый рыцарь", и как раз удалось лишь нагуглить "луковый суп" )))

Не по теме:

Так я, признаться, сразу панически полез в гугл, дабы скорее покрыть своё невежество )

0
2 / 2 / 0
Регистрация: 14.12.2018
Сообщений: 37
19.12.2018, 23:58  [ТС]
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
20.12.2018, 07:57
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public static int onionArray(int onion, int beg, int end, int acc) {
   if (beg==end) 
   {
        acc=acc+onion[beg];
        System.out.println("Core of onion="+onion[beg]+" Summ="+acc);
        return acc;
   }
   if (beg > end)
   {
        System.out.println(" Summ="+acc);
        return acc;
    }   
    else
    {
        int s=onion[beg]+onion[end];
        System.out.println("Sum of level="+s);
        return onionArray(onion,beg+1, end-1,acc+s);
    }
}
 
// Вызов:
//
//   int [] Arr= {1,2,3,4,5,6,7,8};
//   int k=onionArray(Arr,0,Arr.length-1,0);
//
1
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
20.12.2018, 08:41
Catstail, рекурсия классно выглядит, но если массив будет содержать 2 миллиарда элементов...
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
20.12.2018, 09:31
Aviz__, а тут рекурсия хвостовая... Не исключено, что компилятор ее заменит циклом. Хотя, конечно, с замечанием согласен.
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
20.12.2018, 09:35
Цитата Сообщение от Catstail Посмотреть сообщение
рекурсия хвостовая
не подскажешь источник этой ценной информации?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
20.12.2018, 09:38
Цитата Сообщение от Aviz__ Посмотреть сообщение
не подскажешь источник этой ценной информации?
- последняя операция в данном случае - это вызов функции. Такая рекурсия и называется хвостовой.
1
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
20.12.2018, 09:46
Catstail, Это да, при условии, что компилятор достаточно "умен"...
https://ru.wikipedia.org/wiki/... 0%B8%D1%8F

Добавлено через 2 минуты
"Оптимизация хвостовой рекурсии путём преобразования её в плоскую итерацию реализована во многих оптимизирующих компиляторах. В некоторых функциональных языках программирования спецификация гарантирует обязательную оптимизацию хвостовой рекурсии."
Из вики.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
20.12.2018, 09:49
По имеющимся сведениям, компилятор Java весьма умен.
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
20.12.2018, 09:54
отсюда видим, называться
Цитата Сообщение от Catstail Посмотреть сообщение
рекурсия и называется хвостовой.
и действительно быть таковой - это не одно и то же...
Цитата Сообщение от Catstail Посмотреть сообщение
По имеющимся сведениям, компилятор Java весьма умен.
вот, я и спрашиваю эти самые сведения, в этом контексте!
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
20.12.2018, 10:26
https://habr.com/post/319282/
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.12.2018, 10:26
Помогаю со студенческими работами здесь

Вывод суммы четных элементов массива
Напишите программу, печатающую на экране сумму четных элементов заданного массива вещественных чисел.

Суммирование элементов массива и правильный вывод суммы на экран
Программа определяет, сколько экспертов сказали, что товар i лучше товара j. По всем товарам. Такая ситуация, что никак не могу реализовать...

Подсчет и вывод на экран суммы элементов массива с нечётными значениями
Составьте программу , которая заполняет массив a случайными целыми числами в диапозоне от1 до 10 и выводит на экран сумму эллементов...

Рекурсия (вычисление суммы, вывод элементов одномерного массива в обратном порядке)
Я хочу реализовать рекурсивные функции:1)вычисления суммы k первых членов арифметической прогрессии. 2)вывода в консоль элементов...

Вывод на экран подсчета суммы элементов массива между первым и вторым отрицательными элементами
На С++ написана программа подсчета суммы элементов массива между первым и вторым отрицательными элементами . Но не получается сделать вывод...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru