Задания
Версия для печати и копирования в 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), по­лу­чим ответ  — 2.

 

Ответ: 2.

 

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

f = open('09.csv')

cnt = 0

for s in f:

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

for i in range(len(a)-2):

if (a[i]**2+a[i+1]**2 == a[i+2]**2) or (a[i]**2+a[i+2]**2 == a[i+1]**2) or (a[i+1]**2+a[i+2]**2 == a[i]**2):

cnt += 1

print(cnt)

 

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

 

При­ведём ре­ше­ние Ильи Ан­дри­а­но­ва на языке Python.

count = 0

for s in open('9.txt'):

M = sorted(int(x) for x in s.split())

if M[0]**2 + M[1]**2 == M[2]**2:

count += 1

print(count)

 

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


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

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