python-小理的三角形

admin2024-09-06  23

题目描述
小理有一个数组长度大小为 n ,数组中有 n 个正整数。
现在小理请你从其中选出三个元素(注意选择元素的下标不能相同,但是其值可以相同)组成一个三角形。
无法做到,请输出一行一个字符串"No solution",反之请输出这三个元素的值。
如果有多种组成三角形的元素组合,你可以输出任意一种。
输入格式
第一行是一个正整数 n 表示数组的元素个数。
接下来一行输入 n 个正整数 ai​ 表示每个数组元素的值。
输出格式
如无法做到,请输出一行一个字符串"No solution",反之请输出这三个元素的值。
如果有多种组成三角形的元素组合,你可以输出任意一种。
样例输入输出
样例输入#1
5
2 2 3 2 2
样例输出#1
2 2 3
样例输入#2
3
1 2 1
样例输出#2
No solution
数据范围
对于 100% 的数据,保证 1≤n≤100,1≤ai​≤109 。
提示说明
样例# 1 :使用 2 2 3 ,可以组成一个三角形。
样例# 2 :使用 1 2 1 ,不能组成一个三角形,无解。
来源/分类(难度系数:四星
二分查找 搜索 暴力 枚举 

 

完整代码展示:
n=int(input())
list_1=list(map(int,input().split()))
list_5=[]
sum=0
for i in range(0,len(list_1)):
      list_2=list_1[:]
      list_2.remove(list_2[i])
      for j in range(0,len(list_2)):
            list_3=list_2[:]
            list_3.remove(list_2[j])
            for k in range(0,len(list_3)):
                  list_4=[list_1[i],list_2[j],list_3[k]]
                  list_4.sort()
                  if list_4[-1]<list_4[0]+list_4[1]:
                      sum+=1
                      list_5.append(list_1[i])
                      list_5.append(list_2[j])
                      list_5.append(list_3[k])
if sum==0:
     print("No solution")
else:
       print(list_5[0],list_5[1],list_5[2])


代码解释
n=int(input()) ”,让用户输入数组中的元素数量n。
list_1=list(map(int,input().split()) ”,让用户输入数组中的元素,并将起储存在list_1中。
sum=0
 for i in range(0,len(list_1)):
       list_2=list_1[:]
       list_2.remove(list_2[i])
       for j in range(0,len(list_2)):
             list_3=list_2[:]
             list_3.remove(list_2[j])
             for k in range(0,len(list_3)):
                   list_4=[list_1[i],list_2[j],list_3[k]]
                   list_4.sort()
                   if list_4[-1]<list_4[0]+list_4[1]:
                       sum+=1
                       list_5.append(list_1[i])
                       list_5.append(list_2[j])
                       list_5.append(list_3[k])
       ”,sum为能组成三角形的元素组合的数量。任意抽取list_1中的三个元素,并将这三个元素储存在列表list_4。接着对list_4中的元素进行升序排序,判断list_4中的最大元素是否大于最小和次小元素之和:如果是,则让sum+1,将这三个元素添加进list_5中。
if sum==0:
       print("No solution")
 else:
        print(list_5[0],list_5[1]
”,判断sum是否为0,如果是:输出对应结果,否则打印list_5的前三个元素。


运行效果展示:

python-小理的三角形,7cf41b023c304d939f6ab2a542b0acc1.jpg,第1张

python-小理的三角形,d65232a5d2cf4fbeabb1dedacc65f30f.jpg,第2张

             (声明:以上内容均为原创)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!