Защита от землетрясения

  • 4
  • Недоступна
Галабаги взломали нашу систему терраформирования планеты Айтиния.Последствия могут быть ужасны. Это коллапс цивилизации. О боги! Пришел наш последний час.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (21)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Kotamadeo
Уровень 21
30 мая, 16:28
Изначально подумал об этом решении, но подумал, что как-то слишком просто было бы, пришлось заводить счетчик и делать обратную операцию)))
Руслан Куприянов
Уровень 8, Харьков, Ukraine
20 мая, 06:48
Два часа делал что-то вроде калькулятора и не понимал, почему не принимает решение задачи. Оказывается все гораздо проще, чем я думал😁
Peter
Уровень 13
16 мая, 09:05
как ни странно, очень легко прошло. конечно, сначала посетовал, что есть же формула для решения такого и это обычная арифметика, но раз сказано циклом, то вспомним, что программисту не обязательно быть математиком. Я решил так: 1) с помощью if отсек не нужный диапазон. 2) задал переменную равную 0, и сделал цикл на повторение до того, пока значение этой переменной не равно введенному числу. каждый проход цикла прибавляет нашу переменную к сумме и добавляет ей единицу. 5 строк кода.
RomanPomazan
Уровень 6, Днепр, Ukraine
18 апреля, 22:57
Формула суммы ряда тут не прокатила(...
Daqurience
Уровень 5, Алматы, Kazakhstan
4 апреля, 13:41
Странная задача, сканируется число, допустим 7, оно проходит проверку в цикле и заходит в него, 7 больше 0 поэтому переменная sum = 0, становится sum = 7, и цикл почему то заканчивается, печатается цифра.. но цикл сразу весь выполняется, и там написано number—, то есть отнимается на единицу, 7-1=6, 6 всё ещё больше чем 0, почему оно не идет по кругу? тогда выводило бы 7 6 5 4 3 2 1. Но я понял так, что введенная цифра остается как в памяти, как будто в оперативной, и когда отнимается единица то она уже перестает быть той написанной в начале, поэтому и не идет цикл по кругу. Но немног странно всё таки
Evgeny Volgin
Уровень 17, Russian Federation
20 февраля, 10:36
Вообще не понимаю от куда такой ответ ((( Объясните бедному человеку.
Сергей
Уровень 10, Иваново, Россия
21 февраля, 06:39
Считываем ввод с консоли и сохраняем в переменной. Создаём переменную, которая будет хранить результат. Описываем цыкл while, который выполняется пока ввод больше нуля. В цыкле мы прибавляем к переменной, созданной ранее, введённое с консоли число и уменьшаем это число на один. После завершения цыкла выводим результат. Так-как переменная с результатом до цыкла равна нулю, то при вводе в консоль нуля или меньше цыкл не сработает и будет выведен ноль.
Сергей
Уровень 10, Иваново, Россия
17 февраля, 06:43
Вчера, поздно вечером, эта задачка мне казалась нерешаемой. Сегодня утром решил за две минуты. Две простые строчки, без ifов. Вот что сон животворящий делает))
Senya
Уровень 8, Санкт-Петербург, Russian Federation
17 февраля, 01:37
Это изи, а не медиум
Артём Ляхов
Уровень 19, Екатеринбург, Россия
28 января, 09:31
Мое решение: 1. Пишем цикл while, условием выхода из которого, будет дойти до 0, используя декремент (уменьшение числа).
while (0 < number)
2. Пишем условие вывода 0, если введенное число number будет меньше или равно нулю.
if (number <= 0)
В теле этого цикла просто выводим всем известной командой в консоль 0 и можем закончить цикл, добавив после команды вывода, в новой строке команду break; (она будет рассматриваться в следующей лекции) 3. Пишем условие вывода суммы чисел.
else {
                sum += number; // считает сумму чисел
                number--; // уменьшает введенное number на 1, number = number - 1
            }
4. После закрывающейся круглой скобки, которая относится к циклу просто выводим число sum.
Nikolay
Уровень 5, Минск
16 января, 23:41
вроде переполнение, потому что при использовании long вместо int такой проблемы нет