var i: integer; n1,n2: integer; begin for i : = 10 to 99 do begin n1 : = i div 10; n2 : = i mod 10; if (n1 + n2) * (n1 + n2) * (n1 + n2) = i * i then begin writeln(i); end end; end.
Ромеовна1527
08.12.2020
Пусть выбраны гирьки с массами m1, m2, mn и ими удалось массу x. тогда имеет место равенство x = a1 * m1 + a2 * m2 + + an * mn, где ai = 0, если i-ая гирьке не участвовала в взвешиваниях, -1, если лежала на той же чаше весов, что и масса, которкю нужно отмерить, и +1, если на другой чаше весов. каждый из коэффициентов принимает одно из трёх значений, тогда при n гирек можно отмерить не более, чем 3^n различных масс. 3^3 < 40 + 1 < 3^4, значит, гирек нужно не менее четырёх. докажем, что взяв гирьки с массами 1, 3, 9 и 27, можно отмерить любую массу от 1 до 40. будем это делать по индукции, доказав, что при гирек 1, 3, 9, 3^k можно отмерить любую массу от 1 до (3^k - 1)/2. база индукции. при одной гирьки массой 1 действительно можно отмерить массу 1. переход. пусть для k = k' всё доказано. докажем и для k = k' + 1. - если нужно отмерить массу x < = (3^k' - 1)/2, то это можно сделать при k' гирек. - пусть надо отмерить массу (3^k' - 1)/2 < x < = (3^(k' + 1) - 1)/2. кладём на другую чашу весов гирьку массой 3^k'. тогда остаётся нескомпенсированная масса |x - 3^k'| < = (3^k' - 1)/2, которую, по предположению, можно получить. ура! ответ. 1, 3, 9, 27.
market-line5260
08.12.2020
Программа на python 3, перебирающая все возможные последовательности определённой длины: def shortest_chains(n): def next_chains(chain): new_elems = set() for i in range(len(chain)): for j in range(i, len(chain)): new_elem = chain[i] + chain[j] if new_elem > chain[-1] and new_elem not in new_elems: new_elems.add(new_elem) yield chain + [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_chains(chain)) answer = [chain[1: ] for chain in next_stage if chain[-1] == n] return answer def print_solution(n): answer = shortest_chains(n) print("для {} есть {} решений(-я, -е): ".format(n, len( for i in range(len(answer)): print("{}. {}".format(i + 1, " ".join(map(str, print() запустив, можно получить все 5 возможных решений для числа 7, по 4 решения для 15 и 23 и 87 решений для 63.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Найти двузначные числа, тем свойством, что куб суммы его цифр равен квадрату самого числа.
var i: integer; n1,n2: integer; begin for i : = 10 to 99 do begin n1 : = i div 10; n2 : = i mod 10; if (n1 + n2) * (n1 + n2) * (n1 + n2) = i * i then begin writeln(i); end end; end.