版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40788630/article/details/86920598
最近看书书上有一个例题,本来很简单的题,自己却有点想多了,所以写篇博客记录下来。
题意:
输入有两行,第一行输入整数n(代表n个木棍),第二行输入n个数,每个数对应每个棍子的长度,
输出一个整数代表使用三根根子能组成三角形的最大周长,若不能组成三角形则输出0
其实这一题只要将根子按照长度从长到短排序,先选最长的三根,如无法组成三角形,则将最长的那一根舍弃,继续选最长的三根,直至成功,输出当前最长的三根棍子长度之和
代码:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,a[10000],bj=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n-1);
for(int i=n-1;i>2;i--){
if(a[i]<a[i-1]+a[i-2]){
cout<<a[i]+a[i-1]+a[i-2]<<endl;
bj=1;
break;
}
}
if(bj==0)cout<<0<<endl;
return 0;
}