Нарушением условия является случай, когда у мальчика (М) или у девочки (Д) оба соседа того же пола, следовательно недопустимой является расстановка МММ или ДДД. Отсюда возникает условие, что количество М и Д не могут отличаться более, чем вдвое, т.е. 0.5 ≤ X/Y ≤ 2 Программа должна учитывать особенности реализации целых и вещественных чисел в ЭВМ, а также особенности выполнения операции деления и сравнения.
var X, Y: integer; b: boolean; F: Text; begin Assign(f,'input.txt'); Reset(f); Readln(X,Y); Close(f); if X > Y then b := (X / Y <= 2) else b := (Y / X <= 2); if b then writeln('YES') else writeln('NO') end.
Задача достаточно интересная, получил удовольствие от решения. Шестнадцатиричное число, занимающее два разряда, может рассматриваться как две тетрады двоичных чисел. Пронумеруем разряды слева направо, тогда можно представить двухзначное 16-ричное число следующим набором битов: Индексы, кроме положения бита, показывают степень двойки, на которую надо умножить бит, чтобы перейти к десятичному эквиваленту шестнадцатиричной цифры, т.е. старшая цифра в десятичной системе запишется как Умножение числа на 2 в двоичной системе эквивалентно его сдвигу влево на один разряд. При этом старший разряд старшей тетрады должен перейти в новую, третью тетраду или он будет утерян. Но по условию, после умножения число по-прежнему имеет два разряда, следовательно мы должны потерять старший разряд безболезненно, а это возможно только если он нулевой. Тогда первоначальное число должно быть записано как а после удвоения его запись примет вид Запишем сумму цифр исходного числа p1: Теперь запишем сумму удвоенного числа p2: По условию эти две суммы равны и мы составляем уравнение: Полученное уравнение решается на множестве двоичных чисел. Поскольку исходное число двузначное, по крайней мере в старшем разряде оно содержит цифру, отличную от нуля. Следовательно, b3 не может равняться нулю и остается только положить b3=1. Тогда уравнение (1) примет следующий вид: Учитывая, что каждый бит может принимать значения только 0 и 1, мы должны найти такие комбинации бит, которые дадут в сумме 7=4+2+1, потому что у нас в уравнении только такие коэффициенты. Сгруппируем члены в (2): Полученная система уравнений будет иметь 7 вариантов решений (вариант a2=a1=a0=0 исключается в силу необходимости наличия цифры в старшем разряде), которым в старшем разряде будут соответствовать цифры от 001(2) до 111(2) или от 1(10) до 7(10).
ответ: 7
Замечание: Из (3) можно легко найти числа, которые соответствуют заданным условиям: 30, 45, 60, 75, 90, 105, 120 (все в десятичной системе счисления). В 16-ричной системе они запишутся как 1E, 2D, 3C, 4B, 5A, 69, 78.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку