Вам нужно умножить некоторое большое число x на 27. у вас есть калькулятор, но на калькуляторе сломались все кнопки операций, кроме сложения. поэтому вы можете только складывать разные числа (например, можно сложить число x и число x, тогда получится 2x, затем можно сложить число 2x и 2x и получится 4x, а можно сложить 2x и x и получится 3x, то есть можно складывать любые ранее полученные числа между собой). определите, при какого минимального числа сложений можно получить число 27x. последовательность операций, при которых можно получить число 27x за указанное число сложений.
280
407
Ответы на вопрос:
Программа на питоне, перебирающая варианты и возвращающая все ответы минимальной длины: 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( for i in range(len(answer)): print("{}. {}".format(i + 1, " ".join(map(str, 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
Популярно: Информатика
-
xxlllxxx28.04.2021 04:30
-
Лера08930.08.2020 01:36
-
jsjdfjnids7363914.04.2020 14:31
-
Нурай23106.01.2020 04:14
-
2002dima1414.06.2021 20:59
-
graf223120.09.2020 11:17
-
Lina90516.05.2021 02:25
-
vladkoles3605.03.2020 05:29
-
nucubidzezura08.01.2022 19:43
-
Tori16317.06.2020 04:12