您的位置:首页 > 其它

三角形-穷举算法

2015-09-24 12:48 281 查看
package java操作excel;

import java.util.Scanner;

/**
* 三角形
* 有n根棍子,棍子i长度为ai,想要从中选出3根棍子组合成周长尽量可能长的三角形,请输出最大的周长,若无法组成就输出0.
* @author Administrator
*
*输入n = 5;
*a={2,3,4,5,10}
*输出12(3,4,5)
*
*/
public class Main2 {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int a[] = new int
;
for (int i = 0;i<a.length;i++) {
a[i] = input.nextInt();
}

int c = 0;
//首先考虑用穷举的时候需要考虑如何避免重复选择的问题i<j<k
for (int i=0;i<n;i++) {
for (int j = i+1;j<n;j++) {
for (int k = j+1;k<n;k++) {
int len = a[i]+a[j]+a[k];
int ma1 = Math.max(a[i], a[j]);
int ma2 = Math.max(ma1, a[k]);
int re = len-ma2;//其余两根的长度和
if (re > ma2){
//可以组成三角形
c = Math.max(c, len);
}

}
}
}

System.out.println(c);

}

}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: