Сначала посмотрим, какое из чисел больше. Как в обычной арифметике: если вдруг надо вычесть из меньшего большее, мы вычитаем из большего меньшее и ставим в ответе знак минус. Требуется сделать вычитание (группировка разрядов по 4 сделана для удобства чтения): 111 0001 1011 - 101 0011 0101
Тут все хорошо, из большего вычитается меньшее. Вычитаем "в столбик", как обычные числа, но помним, что система счисления двоичная, поэтому когда из 0 вычитается единица, то мы "занимаем единичку" у старшего разряда, уменьшая его на 1. Но, поскольку цифр-то всего две - 0 и 1, то заняв единицу в старшем разряде, мы понимаем, что там останется 0 или 1. А когда мы занимаем единицу? Да лишь тогда, когда от 0 должны отнять 1. Единичка из старшего разряда - это 10₂, т.е. на самом деле обычная десятичная двойка, и после вычитания из 10₂ единицы, получим единицу. Как итог, в разряде: 0-0=0 1-1=0 1-0=1 0-1=1 и при этом в соседнем слева разряде надо тоже вычесть единицу по этим же правилам.
111 0001 1011 - 101 0011 0101
1 1110 0110
Это и есть ответ.
albina6580
28.09.2020
Программа на питоне, перебирающая варианты и возвращающая все ответы минимальной длины: def number_of_adds(n): def next_seq(seq): new_elems = set() for i in range(len(seq)): for j in range(i, len(seq)): new_elem = seq[i] + seq[j] if new_elem > seq[-1] and new_elem not in new_elems: new_elems.add(new_elem) yield seq + [new_elem]
current_stage = None next_stage = [[1]] answer = [] while len(answer) == 0: current_stage = next_stage next_stage = [] for chain in current_stage: next_stage.extend(next_seq(chain)) answer = [seq[1:] for seq in next_stage if seq[-1] == n] return answer
def print_solution(n): answer = number_of_adds(n) print("Для {} есть {} решений(-я, -е):".format(n, len(answer))) for i in range(len(answer)): print("{}. {}".format(i + 1, " ".join(map(str, answer[i] print()
print_solution(27)
Запустив, находим, что необходимо 6 сложений. За 6 сложений можно получить 27X, например, так: X + X = 2X 2X + X = 3X 3X + 3X = 6X 6X + 6X = 12X 12X + 12X = 24X 24X + 3X = 27X
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Дан символ. Определи, данный символ управляющий или изображаемый.Символ: U•управляющий•изображаемый
управляющий
Объяснение:
т.к. ASCII являются управляющими символами