pizniak
?>

35 ! в многоквартирной высотке n этажей, на каждом из которых располагается по m квартир, и всего один подъезд. единственный лифт останавливается только на нечетных этажах. жителю высотки необходимо попасть в свою квартиру с номером k.если лифт может остановиться на его этаже, он воспользуется лифтом, просто выйдя на своем этаже. если же квартира жителя находится на четном этаже, он предпочитает сначала, используя лифт, попасть на этаж выше, а потом спуститься по лестнице (а если этажа выше просто нет, он выйдет из лифта этажом ниже и поднимется по лестницепо данным числам n, m и k требуется определить, на каком этаже должен выйти житель. возможно такое, что квартира жителя находится на первом этаже.формат файла входных данных: в первой строке даны числа n, m и k (1 ≤ n, m ≤ 10^9, 1 ≤ k ≤ n * m).формат файла выходных данных: выведите этаж, до которого житель поедет на лифте.любой язык: паскаль, java

Информатика

Ответы

Равилевич_Олеговна1496

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

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

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

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

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

Иначе

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

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

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

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

 КонецЕсли;

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

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

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

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

 Иначе

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

 КонецЕсли;

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

КонецЕсли;

Ushakova Sakhno
Следующее число, большее 125₁₀, равно 126₁₀ или 1111110₂
Посмотрим, может ли оно получиться по заданному алгоритму.
На шаге 2а определяется "бит четности" путем подсчета количества единиц в двоичной записи числа. Если оно четно, к записи числа справа дописывается 0, если нечетно - единица.
На шаге 2б повторяются действия предыдущего шага.
Отбросим две правые цифры в записи 1111110₂ и посмотрим, как на получившемся числе работает предложенный алгоритм.
1111110 ⇒ 11111, число единиц нечетное, дописываем 1, получаем 111111, теперь число единиц четное, дописываем 0 и получаем 1111110, т.е. как раз то число, которое у нас было при переводе 126 в двоичную систему счисления.
А исходное число - это 11111₂ = 31₁₀
ответ: 31
fymukham
ответ 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]

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

35 ! в многоквартирной высотке n этажей, на каждом из которых располагается по m квартир, и всего один подъезд. единственный лифт останавливается только на нечетных этажах. жителю высотки необходимо попасть в свою квартиру с номером k.если лифт может остановиться на его этаже, он воспользуется лифтом, просто выйдя на своем этаже. если же квартира жителя находится на четном этаже, он предпочитает сначала, используя лифт, попасть на этаж выше, а потом спуститься по лестнице (а если этажа выше просто нет, он выйдет из лифта этажом ниже и поднимется по лестницепо данным числам n, m и k требуется определить, на каком этаже должен выйти житель. возможно такое, что квартира жителя находится на первом этаже.формат файла входных данных: в первой строке даны числа n, m и k (1 ≤ n, m ≤ 10^9, 1 ≤ k ≤ n * m).формат файла выходных данных: выведите этаж, до которого житель поедет на лифте.любой язык: паскаль, java
Ваше имя (никнейм)*
Email*
Комментарий*