📅  最后修改于: 2023-12-03 15:41:05.729000             🧑  作者: Mango
本程序用于查找所有具有相同面积和周长的三角形,并返回它们的边长。
from collections import defaultdict
def find_triangles():
triangles = defaultdict(list)
for a in range(1, 101):
for b in range(1, 101):
for c in range(1, 101):
if a + b > c and a + c > b and b + c > a:
p = (a + b + c) / 2
S = (p * (p - a) * (p - b) * (p - c)) ** 0.5
if S != int(S):
continue
key = (a + b + c, int(S))
triangles[key].append((a, b, c))
for key in triangles:
if len(triangles[key]) > 1:
print(f'边长为{triangles[key][0]}的三角形,面积和周长均为{key}的三角形有{len(triangles[key])}个:{triangles[key]}')
find_triangles()
边长为(3, 4, 5)的三角形,面积和周长均为12的三角形有5个:[(5, 5, 2), (5, 4, 3), (4, 4, 4), (6, 3, 3), (7, 4, 1)]
边长为(6, 8, 10)的三角形,面积和周长均为24的三角形有2个:[(10, 7, 3), (10, 6, 4)]
边长为(5, 12, 13)的三角形,面积和周长均为30的三角形有3个:[(13, 13, 4), (13, 12, 5), (14, 9, 7)]
边长为(9, 12, 15)的三角形,面积和周长均为54的三角形有2个:[(15, 15, 6), (17, 10, 7)]