分析:水题,首先对所有边排序,之后只需要判断相邻的三条边是否能组成一个三角形,若能,则当前三角形就是之前所有符合三角形中周长最大的,扫描一遍排序后的结果即可得到最终答案。
#include<iostream>
#include<algorithm>
using namespace std;
int a[10005];
int main()
{
int n,i,len,tmp;
while(cin>>n && n)
{
len=0;
for(i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
len=0;
for(i=0;i+2<n;i++)
if(a[i]+a[i+1]>a[i+2])
{
tmp=a[i]+a[i+1]+a[i+2];
len=len>tmp?len:tmp;
}
cout<<len<<endl;
}
return 0;
}给N条边,请找三条边,使其组成一个三角形,并使得这个三角形的周长最大。
原文地址:http://blog.csdn.net/a809146548/article/details/45566189