Задания
Версия для печати и копирования в MS Word

От­крой­те файл элек­трон­ной таб­ли­цы, со­дер­жа­щей в каж­дой стро­ке три на­ту­раль­ных числа.

За­да­ние 9

Опре­де­ли­те, сколь­ко среди за­дан­ных троек чисел таких, ко­то­рые могут быть сто­ро­на­ми ост­ро­уголь­но­го тре­уголь­ни­ка.

Спрятать решение

Ре­ше­ние.

За­ме­тим, что тре­уголь­ник яв­ля­ет­ся ост­ро­уголь­ным, если квад­рат длины наи­боль­шей сто­ро­ны тре­уголь­ни­ка будет мень­ше суммы квад­ра­тов длин дру­гих двух сто­рон. Тогда в ячей­ке D1 за­пи­шем фор­му­лу =(МАКС(A1:C1))^2 и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на D2:D5000. В ячей­ке E1 за­пи­шем фор­му­лу:

=(МИН(A1:C1))^2+(СУММ(A1:C1)-МИН(A1:C1)-МАКС(A1:C1))^2

и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на E2:E5000. Таким об­ра­зом, по­лу­чим квад­рат длины наи­боль­шей сто­ро­ны и сумму квад­ра­тов дру­гих двух сто­рон для каж­дой трой­ки чисел. После этого в ячей­ку F1 за­пи­шем фор­му­лу =ЕСЛИ(D1<E1;1;0) и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на F2:F5000. Те­перь, вос­поль­зо­вав­шись фор­му­лой =СУММ(F1:F5000), по­лу­чим ответ  — 1074.

 

Ответ: 1074.

 

При­ведём ре­ше­ние Сер­гея Ка­лу­ги­на на языке Python.

cnt = 0

f = open('09.csv')

for s in f:

a = list(map(int,s.split(';')))

a.sort()

if a[0]**2 + a[1]**2 > a[2]**2:

cnt+=1

print(cnt)

 

При­ме­ча­ние. Файл сле­ду­ет со­хра­нить в фор­ма­те CSV.

 

При­ведём ре­ше­ние Артёма Гри­ди­на на языке Python.

print([True if y[2]**2 < y[1]**2+y[0]**2 else False for y in tuple(map(lambda x: sorted(tuple(map(int, x.split(';')))), open('09.csv').read().splitlines()))].count(True))

 

 

При­ме­ча­ние. Файл сле­ду­ет со­хра­нить в фор­ма­те CSV.


Аналоги к заданию № 38943: 39238 Все

Раздел кодификатора ФИПИ: