码迷,mamicode.com
首页 > 其他好文 > 详细

读书笔记--程序设计

时间:2016-08-15 00:01:42      阅读:327      评论:0      收藏:0      [点我收藏+]

标签:

三角形的构建:有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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!