Определите количество троек чисел таких, которые могут являться
Условие
Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём тройкой три идущих подряд элемента последовательности. Определите количество троек чисел таких, которые могут являться сторонами остроугольного треугольника. В ответе запишите два числа: сначала количество найденных троек, а затем — максимальную сумму элементов таких троек. Если таких троек не найдётся — следует вывести 0 0.Задание 17Ответ:
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Заметим, что треугольник является остроугольным, если квадрат длины наибольшей стороны треугольника будет меньше суммы квадратов длин других двух сторон. Решим задачу перебором. Приведём решение данной задачи на языке PascalABC:var x, y, z, count, maxsum, a, b: integer;f: text;begin assign(f,'C:\17.txt'); reset(f); count := 0; maxsum := 0; readln(f, x); readln(f, y); while not eof(f) do begin readln(f, z); a := Max(x, y, z) * Max(x, y, z); b := x + y + z - Min(x, y, z) - Max(x, y, z); b := Min(x, y, z) * Min(x, y, z) + b * b; if a < b then begin count := count + 1; if (x + y + z > maxsum) then maxsum := x + y + z; end; x := y; y := z; end; writeln(count, ' ', maxsum);end. Приведём решение Николая Чуркина (Тимашевск) на языке Python.count = m = 0f = open('17.txt')l = [int(i) for i in f]for i in range(len(l) - 2): l1 = sorted([l[i], l[i + 1], l[i + 2]]) if l1[2]**2 < (l1[1]**2 + l1[0]**2): count += 1 m = max(m, sum(l1))print(count, m) Результат работы программы — 1175
Осталось ещё 1 шаг
Приведём решение Сергея Донец на…
Бесплатно · займёт минуту