标签:
三角形的构建:有n根棍子,棍子i的长度为ai.要想从中选出3根棍子组成周长尽可能长的三角形。请输出最大的周长,若无法组成三角形则输出0.
限制条件:
1.3<=n<=100
2.1<=ai<=10^6
算法的主要思想:o(n^3)的复杂度,利用三层for循环找出每条边对应的符合条件的最大边长长度。
#include <stdio.h> #include <stdlib.h> #define max(x,y) ((x>y)?x:y) int main(int argc, char *argv[]) { int n,a[100],i,j,k; int len,max,ans=0; scanf("%d",&n); //input for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(i=0;i<n;i++){ for(j=i+1;j<n;j++){ for(k=j+1;k<n;k++){ len=a[i]+a[j]+a[k]; max=max(a[i],max(a[j],a[k])); if(max<len-max){ ans=max(ans,len); } } } } printf("%d\n",ans); system("PAUSE"); return 0; }
标签:
原文地址:http://www.cnblogs.com/if-else/p/5769937.html