最大周长三角形

版权声明:本文为博主原创文章,未经博主允许不得转载。 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; 
}

猜你喜欢

转载自blog.csdn.net/qq_40788630/article/details/86920598