zoukankan      html  css  js  c++  java
  • 三角形-穷举算法

    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[n];
    		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);
    		
    		
    	}
    	
    }
    

      

  • 相关阅读:
    Git :版本控制工具进阶
    Git 提交本地代码
    Git创建代码仓库
    Git
    SQLlite数据库的增删改查
    Android学习第十天
    Android学习第九天
    Android学习第八天
    Android学习第七天
    【k8s】Deployment
  • 原文地址:https://www.cnblogs.com/airycode/p/4834959.html
Copyright © 2011-2022 走看看