Форум » Обработка целых чисел » Задание 17 номер 196 (Л. Шастин) » Ответить

Задание 17 номер 196 (Л. Шастин)

ivackov.sergey: Вот условие: 196) (Л. Шастин) В файле 17-10.txt содержится последовательность целых чисел. Элементы последовательности могут принимать значения от 0 до 10000 включительно. Определите сначала количество троек элементов последовательности, из которых можно составить прямоугольный треугольник, а затем сумму всех гипотенуз треугольников в подходящих тройках. Под тройкой подразумевается три идущих подряд элемента последовательности. [pre2] # Автор Ипатов Ю.А. # Разбор: https://youtu.be/_PTjNaNqplQ var x, n, triygolniki,gipo,maxi: integer; a1, b1, c1: integer; function NumberOfTri(a, b, c: integer): integer; begin if (a * a + b * b = c * c) or (b * b + c * c = a * a) or (a * a + c * c = b * b) then begin result := 1; maxi:=max(a,b,c); end else begin result := 0; maxi:=0; end; end; begin assign(input, '17-10.txt'); reset(input); readln(a1); readln(b1); n := 2; while not eof(input) do begin n += 1; readln(x); c1 := x; triygolniki += NumberOfTri(a1, b1, c1); gipo+=maxi; (a1,b1):=(b1,c1); end; triygolniki.Println; gipo.Println; end. [/pre2] Можно как-то более лаконично решить?

Ответов - 6

ivackov.sergey: Подскажите пожалуйста, куда присылать корректные коды программ, чтобы она попадали в базу корректных решений?

Поляков: ivackov.sergey пишет: куда присылать корректные коды программ, чтобы она попадали в базу корректных решений? Имеет смысл присылать мне на почту решения, которые чем-то лучше, чем то, что есть в файле с решениями.

Поляков: ivackov.sergey пишет: Можно как-то более лаконично решить? Можно. [pre2] ## var data := ReadLines('17-10.txt').Select(t -> t.ToInteger).ToArray; var triples := data.NWise(3).Select(ar->ar.Order.ToArray) .Where(ar->ar[0]*ar[0]+ar[1]*ar[1]=ar[2]*ar[2]); triples.Count.Print; triples.Sum(t->t[2]).Print; [/pre2]


nikson: [pre2] F = open('17-10.txt') k = s = 0 a = [] # массив точек for x in F: a.append(int(x)) k = s = 0 for i in range(len(a)-2): b = []# массив сторон треугольника b.append(a[ i]) b.append(a[i+1]) b.append(a[i+2]) b.sort() # сортируем, чтобы сначала были катеты if b[0]**2 + b[1]**2 == b[2]**2: k += 1 s += b[2] print(k, s) [/pre2]

jominika: s=[int(x) for x in open('17-10.txt')] b=[] for i in range(len(s)-2): c=[] c.append(s[i]) c.append(s[i+1]) c.append(s[i+2]) c.sort() if (c[0]**2+c[1]**2)==c[2]**2: b.append(c[2]) print(len(b),sum(b))

jominika: s=[int(x) for x in open('17-10.txt')] b=[] for i in range(len(s)-2): c=[] c.append(s[i]) c.append(s[i+1]) c.append(s[i+2]) c.sort() if (c[0]**2+c[1]**2)==c[2]**2: b.append(c[2]) print(len(b),sum(b))



полная версия страницы