// 利用给定数组的元素求出可组成的最大周长三角形的强制解法 import java.io.*;
class GFG {
// Function to find out maximum perimeter static void maxPerimeter(int arr[], int n) { // initialize maximum perimeter as 0. int maxi = 0; //从数组中拾取 3 个不同的元素 for (int i = 0; i < n - 2; i++) { for (int j = i + 1; j < n - 1; j++) { for (int k = j + 1; k < n; k++) { // a, b, c are 3 sides of // the triangle int a = arr[i]; int b = arr[j]; int c = arr[k]; // 检查 a, b, c // 是否构成三角形。 if (a < b+c && b < c+a && c < a+b) { // if it forms a triangle // then update the maximum // value. maxi = Math.max(maxi, a+b+c); } } } } // 如果最大周长不为零 // 则打印出来。 if (maxi > 0) System.out.println( "Maximum Perimeter is: " + maxi); //否则无法形成三角形 //。 else System.out.println( "Triangle formation " + "is not possible." ); } // Driver Program public static void main (String[] args) { // test case 1 int arr1[] = {6, 1, 6, 5, 8, 4}; maxPerimeter(arr1, 6); // test case 2 int arr2[] = {2, 20, 7, 55, 1, 33, 12, 4}; maxPerimeter(arr2, 8); // test case 3 int arr3[] = {33, 6, 20, 1, 8, 12, 5, 55, 4, 9}; maxPerimeter(arr3, 10); } }
|