Информатика, опубликовано 2018-08-22 21:36:26 by Гость

В некоторой игре используются карточки с номерами от 1 до N. На вход программе сначала подаётся число N, не превосходящее 1000, а затем N-1 число - номера карточек (в произвольном порядке). Программа должна вывести номер оставшейся карточки или сооб- щить, что ввод ошибочный (если программа сумела это понять), сло- вом ERROR. Инструментарий, который не рассматривался в задании (например, массивы), не использовать. При заданных ограничениях не все ошибки ввода возможно отловить, но таких тестов не будет.

Ответ оставил Гость

# # Код на ruby 2.2.3p173
max = 0
max_last = 0
min = 1000
min_last = 1000
n = 0

begin
    max_last = max
    min_last = min

    File.open("input.txt", "r") do |infile|
        line = infile.gets.strip
        p line
        n = line.to_i if n == 0

        while (line = infile.gets)
            p line
            number = line.strip.to_i

            max = number if max == 0 or number == max + 1
            min = number if min == 1000 or number == min - 1
            p [min, max]
        end
    end
end until (max == max_last and max 0 and min == min_last) or (min == 0 and max == n)

p max + 1 if max == max_last and max p min - 1 if min > 0 and min == min_last
p "error" if min == 0 and max == n

Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.

Форма вопроса доступна на полной версии этой страницы.