М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
clsagubar
clsagubar
23.03.2022 15:08 •  Информатика

35 !

в многоквартирной высотке n этажей, на каждом из которых располагается по m квартир, и всего один подъезд. единственный лифт останавливается только на нечетных этажах. жителю высотки необходимо попасть в свою квартиру с номером k.

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

по данным числам n, m и k требуется определить, на каком этаже должен выйти житель. возможно такое, что квартира жителя находится на первом этаже.
формат файла входных данных:

в первой строке даны числа n, m и k (1 ≤ n, m ≤ 10^9, 1 ≤ k ≤ n * m).

формат файла выходных данных:

выведите этаж, до которого житель поедет на лифте.

любой язык: паскаль, java

👇
Ответ:
Kylie15
Kylie15
23.03.2022

Написал на том, что было под рукой: 1C

Если Квартира > ЭтажейВДоме * КвартирНаЭтаже Тогда  

 Сообщить("Нет такой квартиры в доме, мало этажей!");

ИначеЕсли Квартира <= КвартирНаЭтаже Тогда  

 Сообщить("Живет на первом этаже");

Иначе

 ЖиветНа = Цел(Квартира / КвартирНаЭтаже);

 ОстатокЭт = Квартира%КвартирНаЭтаже;

 Если ОстатокЭт>0 Тогда  //

  ЖиветНа = ЖиветНа+1;

 КонецЕсли;

 Если ЖиветНа%2=0 И ЖиветНа=ЭтажейВДоме Тогда // это четный и последний

  ВыходитьНа = ЖиветНа-1;

 ИначеЕсли ЖиветНа%2=0 Тогда // четный в НЕчетный этаж

  ВыходитьНа = ЖиветНа+1;

 Иначе

  ВыходитьНа = ЖиветНа;

 КонецЕсли;

 Сообщить(" Выйдет на: "+ВыходитьНа);

КонецЕсли;

4,5(75 оценок)
Открыть все ответы
Ответ:
debnatkh
debnatkh
23.03.2022
Следующее число, большее 125₁₀, равно 126₁₀ или 1111110₂
Посмотрим, может ли оно получиться по заданному алгоритму.
На шаге 2а определяется "бит четности" путем подсчета количества единиц в двоичной записи числа. Если оно четно, к записи числа справа дописывается 0, если нечетно - единица.
На шаге 2б повторяются действия предыдущего шага.
Отбросим две правые цифры в записи 1111110₂ и посмотрим, как на получившемся числе работает предложенный алгоритм.
1111110 ⇒ 11111, число единиц нечетное, дописываем 1, получаем 111111, теперь число единиц четное, дописываем 0 и получаем 1111110, т.е. как раз то число, которое у нас было при переводе 126 в двоичную систему счисления.
А исходное число - это 11111₂ = 31₁₀
ответ: 31
4,5(44 оценок)
Ответ:
Denchik01TURBO
Denchik01TURBO
23.03.2022
ответ 31

код на Ruby 22

for i in 1..40
    s = i.to_s(2)
    k = 0
    s.chars().each {|c| k += 1 if c == "1" }
    s += (k % 2).to_s + "0"
    p [i, s, s.to_i(2)]
end

вывод
[1, "110", 6]
[2, "1010", 10]
[3, "1100", 12]
[4, "10010", 18]
[5, "10100", 20]
[6, "11000", 24]
[7, "11110", 30]
[8, "100010", 34]
[9, "100100", 36]
[10, "101000", 40]
[11, "101110", 46]
[12, "110000", 48]
[13, "110110", 54]
[14, "111010", 58]
[15, "111100", 60]
[16, "1000010", 66]
[17, "1000100", 68]
[18, "1001000", 72]
[19, "1001110", 78]
[20, "1010000", 80]
[21, "1010110", 86]
[22, "1011010", 90]
[23, "1011100", 92]
[24, "1100000", 96]
[25, "1100110", 102]
[26, "1101010", 106]
[27, "1101100", 108]
[28, "1110010", 114]
[29, "1110100", 116]
[30, "1111000", 120]
[31, "1111110", 126]
[32, "10000010", 130]
[33, "10000100", 132]
[34, "10001000", 136]
[35, "10001110", 142]
[36, "10010000", 144]
[37, "10010110", 150]
[38, "10011010", 154]
[39, "10011100", 156]
[40, "10100000", 160]
4,4(89 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ