给N条边,请找三条边,使其组成一个三角形,并使得这个三角形的周长最大。

分析:水题,首先对所有边排序,之后只需要判断相邻的三条边是否能组成一个三角形,若能,则当前三角形就是之前所有符合三角形中周长最大的,扫描一遍排序后的结果即可得到最终答案。

#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;
}
时间: 2024-10-08 09:45:28

给N条边,请找三条边,使其组成一个三角形,并使得这个三角形的周长最大。的相关文章

C++数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。(牛客剑指offer)

///////////////////////////////////////////////////////// //数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. //例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}. //由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. #include <iostream> using namespace std; int Grial(int a[],int n) { if(n==0)return -1;

【c语言】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}, 由于数组中数字2出现了5次,超过数组的长度的一半,因此输出2 一种办法是先把数组排序,那么超过一半的元素一定是数组最中间的元素. 第二种办法比较抽象,设一个变量保存当前值,设一个次数,当前值与下一个值进行比较,如果相等,次数加一,如果不相等,次数减一,如果次数减到0了还是不相等,就把当前值替换掉.代码如下: #include <stdio.h> #includ

9.7数学与概率(三)——在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分

/** * 功能:在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分. * 假定正方形的上下两条边与x轴平行. */ /** * 考虑: * 线的准确含义,可能性有: * 1)由斜率和y轴截距确定: * 2)由这条边上的任意两点确定: * 3)线段,以正方形的边作为起点和终点. * * 假设:这条线的端点应该落在正方形的边上. * 思路:要将两个正方形对半分,这条线必须连接两个正方形的中心点. */ public class Square { //正方形的四条边 int lef

9.7数学与概率(四)——在二维平面上,有一些点,请找出经过点数最多的那条线

/** * 功能:在二维平面上,有一些点,请找出经过点数最多的那条线. /** * 思路:在任意两点之间画一条无线长的直线,用散列表追踪那条直线出现的次数最多.时间复杂度O(N*N) * 注意: * 1)用斜率和y轴截距来确定是否是同一条直线. * 2)浮点数不一定能用二进制数准确表示,因此检查两个浮点数的差值是否在某个极小值(epsilon)内. * 3)对于散列表而言,斜率相等,未必散列值相同.因此,将斜率减去一个极小值,并以得到的结果flooredSlope作为散列键. * 4)取得所有可

项目经理漫谈:面对项目管理的新人,你最想给他的三条建议是什么

现在该有很多考PMP证书的,也有很多初生牛犊的项目经理和项目管理人,满怀信心的冲入职场准备大干一场,但是,我现在想给职场新人和项目管理新人一些建议,只有了解一些职场规则,懂得项目管理运营之道才能更好的遨游职场.下面分享项目经理漫谈:面对项目管理的新人,你最想给他的三条建议是什么?(下面是很多管理者的建议,不止三条~) 关于PMP项目管理问题.资料书籍等可以加群:647240543 从工作态度上的建议:(职场新人也可以看) 1.认真负责,吃苦耐劳,虚心请教.你的能力是渣渣,唯一能让人尊重的就是你的

给iPhone找一条平凡之路

新款iPhone马上就要开发布会了,对于全世界的手机从业者来说,现在的感觉就好像中国人过年:早些时候,大家都盼着过年,放鞭炮.享受美食,小孩子还有压岁钱,但随着生活水平的提高,年味越来越淡,昔日的美好不复存在,甚至出现了"恐归族",逃到异国他乡,逃避过年.近年来的苹果发布会,也大有"过年"的趋势,最早的时候,全世界满怀期待,苹果也总能推出革命性产品,缔造了一个又一个经典瞬间,特别是iPhone3Gs到iPhone4的设计升级,简直亮瞎了双眼,那种感觉就好像父亲在95

java-第十三章-类的无参方法(一)-根据三角形的三条边长,判断是直角,锐角还是钝角三角形

package 本章总结; public class A03class { public boolean showA(int a ,int b ,int c){ boolean con=false; if((a+b)>c&&(a+c)>b&&(c+b)>a){ con=true; } return con; } public String Shape(int a,int b,int c){ String shape=""; if((a=

搜索引擎优化要领:8条辅助技巧(三)

接上篇:搜索引擎优化要领:8条辅助技巧(二) 六.正确使用重定向 有许多的原因,你可能会重定向的内容: 当移动一个旧网站到一个新的领域 指挥交通从一个网页到另一个 移动通信从过期的页面到现有的页面 要移动到另一个页面上断开的链接 有几种不同的方式来重定向的页??面和你这样做,以避免浪费流量和失去在谷歌的搜索结果中的位置,这是可取的. 七.检查你的内部链接 在你的网站内部链接可以在你的网站的整体搜索引擎优化的一个重要因素.链接不仅是一个很好的导航源的用户,但他们也告诉谷歌,你的网页是非常重要的.

c语言:任给三条边长,判断能否构成三角形,如果能,求出其面积和周长

任给三条边长,判断能否构成三角形,如果能,求出其面积和周长 程序: #include<stdio.h> #include<math.h> int main() { double a, b, c, d, s, area; printf("请输入三个正数:"); scanf("%lf%lf%lf",&a,&b,&c); if ((a + b > c) && (a + c > b) &&a