在n个火柴里面拿3根出来拼接成最大三角形的周长
生活随笔
收集整理的這篇文章主要介紹了
在n个火柴里面拿3根出来拼接成最大三角形的周长
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
求三角形max周長(zhǎng)
public class 求三角形max周長(zhǎng) {
public static void main(String[] args) {/*** 有n個(gè)棍子 每個(gè)棍子的長(zhǎng)度是a[i]* 3<=n<=100;* 1<=a[i]<=100; */
System.out.println("請(qǐng)輸入n根繩子");
Scanner input =new Scanner(System.in);
int n=input.nextInt();
System.out.println("每根繩子的長(zhǎng)度");
int[] a=new int[n];
for(int i=0;i<n;i++){
a[i]=input.nextInt();
}
int max=0;
//讓i<j<k 這樣棍子就不會(huì)重復(fù)選中了 我一開始沒有想到 以后要記住
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){
//三條邊的總和
int allLen=a[i]+a[j]+a[k];
//求三個(gè)數(shù)的最大值的時(shí)候 可以先求任意兩個(gè)的最大值 然后再把這個(gè)最大值和第三個(gè)數(shù)進(jìn)行比較得到最大值
int maxLength=maxValue(a[i],maxValue(a[j],a[k]));
//剩下的兩邊之和 可以有總長(zhǎng)度減去那個(gè)最大值
int rest=allLen-maxLength;
if(rest>maxLength){
//如何可以組成三角形 然后將答案更新
max=maxValue(max,allLen);
}
}
}
}
if(max==0){
System.out.println("無論怎么組合都不能組成三角形");}
else{
System.out.println("最大的周長(zhǎng)是"+max);
}}
//求2個(gè)數(shù)字里面最大的數(shù)字
public static int maxValue(int a,int b){
int max=0;
if(a>b){
max=a;
}else{
max=b;
}
return max;
}
}
?
總結(jié)
以上是生活随笔為你收集整理的在n个火柴里面拿3根出来拼接成最大三角形的周长的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。