Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/88: Рейтинг темы: голосов - 88, средняя оценка - 4.94
6 / 6 / 0
Регистрация: 17.09.2012
Сообщений: 104

Сумма всех четных чисел в заданном диапазоне

18.06.2019, 22:43. Показов 17783. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Есть задача:
С помощью цикла for подсчитайте сумму всех четных чисел в диапазоне [-10;10].

Решил так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int sum = 0;
 
        for (int i = -10; i <= 0; i++){
            System.out.print(i + " ");
                if (0==(i%2)){
                    sum = sum + (-1 * i); // меняем знак у числа 
                }
            }
 
        System.out.println();
 
        for (int i = 1; i <= 10; i++){
            System.out.print(i + " ");
            if (0==(i%2)){
                sum += i;
            }
        }
 
        System.out.println("\nСумма всех чётных чисел в диапазоне [-10;10]: " + sum);
Может есть более изящное решение?
Буду благодарен за критику и подсказки.

Добавлено через 32 минуты
Есть ещё такой вариант:

Java
1
2
3
4
5
6
7
8
9
10
11
12
        int sum = 0;
 
        for (int i = -10; i <= 10; i++){
            System.out.print(i + " ");
                if (0==(i%2) && i <= 0){
                    sum = sum + (-1 * i); // избавляемся от минуса
                } else if (0==(i%2) && i >= 0){
                    sum += i;
                }
            }
 
        System.out.println("\nСумма всех чётных чисел в диапазоне [-10;10]: " + sum);
Возможно ли как-нибудь ещё поменять знак у числа?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.06.2019, 22:43
Ответы с готовыми решениями:

Найти сумму чётных чисел в заданном диапазоне, у которых сумма цифр меньше 12
Напишите программу, которая запрашивает числа A и B (A&lt;B), и находит сумму только чётных двузначных чисел в диапазоне от A до B...

Сумма чётных чисел в диапазоне от 2 до 14
Здравствуйте. Помогите пожалуйста решить две задачи на ассе. 1. Найти сумму четных чисел в промежутке от 2 (значение поместите в ячейку )...

Сгенерировать массив из N неповторяющихся четных чисел в заданном диапазоне
Создать функцию, которая генерирует массив из N элементов неповторяющихся четными числами в диапазоне K.M

27
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
20.06.2019, 13:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Aviz__ Посмотреть сообщение
это, когда не нужно считать, а понимаешь, что ряд симметричен, или считать формулой арифметической прогрессии.
"Не нужно считать..." не подходит по условию задачи, в котором требуется именно "подсчитать".
"Считать формулой арифметической прогрессии" - любопытно было бы посмотреть на код.
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,504
20.06.2019, 13:48
Цитата Сообщение от alicesmagic3d Посмотреть сообщение
любопытно было бы посмотреть на код.
пожалуйста))
Java
1
2
3
4
5
6
7
8
9
public static void main(String[] args) {
       // 1,2,3....10
        System.out.println(10*(1 + 10)/2); // по формуле))
        int s = 0;
        for (int i = 1; i <= 10; i++) {
            s += i;
        }
        System.out.println(s);
    }
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
20.06.2019, 14:56
Цитата Сообщение от Aviz__ Посмотреть сообщение
пожалуйста))
Java
1
        System.out.println(10*(1 + 10)/2); // по формуле))
Надо полагать вы имеете в виду эту формулу? Действительно она короткая.
Только где здесь цикл for, где четные числа и где диапазон [-10;10]?
Здесь сумма всех чисел в диапазоне [0;10]. Каким образом эта формула относится к обсуждаемой задаче?
0
20.06.2019, 15:19

Не по теме:

alicesmagic3d, мдя, дела(( может те перекрасится...

0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
20.06.2019, 16:04
Цитата Сообщение от alicesmagic3d Посмотреть сообщение
Только где здесь цикл for, где четные числа и где диапазон [-10;10]?
Здесь сумма всех чисел в диапазоне [0;10]. Каким образом эта формула относится к обсуждаемой задаче?
Цикла for, конечно, нет, но просто штука в том, что можно было решить задачу просто применив формулу суммы арифметической прогрессии. До этого чёт никто не додумался так сделать. Формулу можно подогнать под любую последовательность чисел в любом диапазоне. Я полагаю, что Aviz__ просто привёл пример как это можно сделать

Добавлено через 2 минуты
Иногда бывает просто любопытно посмотреть на интересные варианты решения, не за чем вот так вот брать и накидываться, если решение не полностью соответствует условию задачи
1
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
20.06.2019, 17:43
Цитата Сообщение от Gungala Посмотреть сообщение
Цикла for, конечно, нет, но просто штука в том, что можно было решить задачу просто применив формулу суммы арифметической прогрессии. До этого чёт никто не додумался так сделать. Формулу можно подогнать под любую последовательность чисел в любом диапазоне. Я полагаю, что Aviz__ просто привёл пример как это можно сделать

Добавлено через 2 минуты
Иногда бывает просто любопытно посмотреть на интересные варианты решения, не за чем вот так вот брать и накидываться, если решение не полностью соответствует условию задачи
Сладкая парочка в своем амплуа))) Парни, кто-же на вас накидывается? Если формулу можно подогнать под любую последовательность, ну так подгоните. Хотя-бы и без цикла for. Чего бросать слова на ветер.
Я привела пример кода на 100% подходящий под условие задачи:
Java
1
for(int i = -10, sum = i; i <= 10; i += 2, sum += i);
Aviz не согласился, что он самый короткий и по своему обыкновению погнал пургу. Ну предложил бы просто свой код, да и дело с концом. Я бы за него порадовалась. Мне тоже нравятся интересные варианты решения. Хоть я и тупая блондинка. Вот только похоже, что вы снова решили пооффтопить. Что дальше? Опять призовете ругающегося модератора?

Добавлено через 2 минуты
И... я ничего не путаю? Это Aviz, кажется, любитель употреблять слово "пустобрехство"?
0
20.06.2019, 17:46
 Комментарий модератора 

Не скатываемся в оффтоп!

0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
24.06.2019, 08:22
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
32
33
public class Main {
    private static long calcEvenSumInRangeFormulated(int a, int b) {
        long x = (b + (b % 2)) / 2;
        long y = (a - (a % 2)) / 2;
 
        long oddSum = (x * x - y * y);
        long totalSum = (b - a + 1) * (a + b) / 2;
 
        return totalSum - oddSum;
    }
 
    private static long calcEvenSumInRangeStraight(int a, int b) {
        long sum = 0;
 
        for (int i = a; i <= b; i++) {
            if (i % 2 == 0)
                sum += i;
        }
 
        return sum;
    }
 
    @Test
    public void testAlgorithms() {
        int a = -10;
        int b = 10;
 
        long expected = calcEvenSumInRangeStraight(a, b);
        long actual = calcEvenSumInRangeFormulated(a, b);
 
        assertEquals(expected, actual);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.06.2019, 08:22

Подсчитать количество всех чисел, лежащих в диапазоне от а до с в заданном массиве чисел
Подсчитать количество всех чисел, лежащих в диапазоне от а до с в заданном массиве чисел. Количество чисел в массиве, элементы массива и...

Найти разницу между суммой четных и нечетных чисел в заданном диапазоне
Условие задачи: Необходимо поставить ограничение в вводе 0&lt;(A и B)&lt;100. Само решение: На ввод даётся 3, 6 Программа считает в...

Посчитать сумму всех чисел в заданном диапазоне
Есть задание: Пользователь вводит две границы диапазона. Посчитать сумму всех чисел диапазона. вот мой код: var...

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

Найти в заданном интервале сумму всех четных чисел и среднее арифметическое всех нечетных
Задать интервал целых чисел. Найти сумму всех четных чисел и среднее арифметическое всех нечетных.


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru