Puzzle — Temperatures

Задача взята с этого сайтаБезымянный

В этой задаче необходимо проанализировать значения температуры, дабы найти ближайшее к нулю.

Ввод:

Строка 1: [latex]N[/latex], количество значений температуры.

Строка 2: собственно говоря, сами значения температуры, выраженные целыми числами в диапазоне от -273 до 5526.

Вывод:

Вывести 0 в том случае, если не введено ни одного значения.

Если введено хотя бы одно, то вывести на экран значение ближайшее к 0. Отметить, что если есть 2 значения, одинаково близкие к нулю, но с разными знаками, то на экране должно отобразиться положительное число.

[latex]N[/latex] Ввод Вывод Комментарий.
Простой тест 5 1 -2 -8 4 5 1 Пройден.
Сложный тест 10 -5 -4 -2 12 -40 4 2 18 11 5 2 Пройден.
Без температур 0 0 Пройден.
Дополнительный тест 14 7 -10 13 8 4 -7 -12 -3 3 -9 6 -1 -6 7 -1 Пройден.

Код программы (C++):

Для первого теста нужно было найти ближайшее к нулю значение, когда все числа по модулю были попарно различными. Для этого достаточно было завести переменную типа int и положить в неё значение, которое заведомо больше всех возможных (это 5527, так как по условию задачи значения температур не выходят за пределы [-273;5527]). И в цикле сделать проверку того, что же больше — модуль нашего текущего значения или модуль только что введённого.

Задача 1.

Для того, чтобы пройти второй тест необходимо было ввести такое условие, при котором отметалось бы отрицательное значение температуры при наличии такого же по модулю положительного. Для этого мы сравниваем модуль текущего значения температуры со значением введённым (уже не по модулю, так как нам нужно убрать отрицательные числа), и если они равны, то текущее ближайшее значение изменится на положительное, если до этого оно было с минусом.

Задача 2.

Java:

И для последней задачи, конечно, достаточно было ввести условие, что [latex]N[/latex] не равно нулю. В противном случае программа выведет на экран 0. Конечный код указан первым.

 

Related Images:

One thought on “Puzzle — Temperatures

  1. Ваша программа отличается от ранее опубликованного решения только способом присваивания начального значения минимуму. Я зачту на этот раз, но впредь старайтесь смотреть, что делали другие. Не стоит повторять уже сделанную работу.

    Чтобы от повторной публикации близкого решения было больше пользы, наберите, пожалуйста, именно тест с картинки. И уберите точки в заголовках столбцов таблицы. Заголовки «Ввод» и «Вывод» нужно выделить.

    Зачёл.

Добавить комментарий