📜  获得三角形非负面积所需的边的最小增量

📅  最后修改于: 2021-05-06 08:46:04             🧑  作者: Mango

给定三角形的三个边,找到三角形边的长度的最小增加以使三角形的面积为非负数。

例子:

正确的做法由于如果最小的两个边的总和始终大于或等于第三边,则任何三角形的面积均为非负数,因此应遵循以下步骤来解决上述问题:

  • 按升序对三个边进行排序。
  • 检查前两边的总和是否大于或等于第三边,如果是,则答案为0。
  • 如果不是,那么答案将是(第三面-(第一面+第二面))。

下面是给定方法的实现。

C++
// C++ program to find Minimum
// increase in sides to get
// non-negative area of a triangle
#include 
using namespace std;
  
// Function to return the minimum increase in side
// lengths of the triangle
int minimumIncrease(int a, int b, int c)
{
    // push the three sides to a array
    int arr[] = { a, b, c };
  
    // sort the array
    sort(arr, arr + 3);
  
    // check if sum is greater than third side
    if (arr[0] + arr[1] >= arr[2])
        return 0;
    else
        return arr[2] - (arr[0] + arr[1]);
}
  
// Driver Code
int main()
{
    int a = 3, b = 5, c = 10;
  
    cout << minimumIncrease(a, b, c);
  
    return 0;
}


Java
// Java Program to find Minimum 
// increment in the sides required 
// to get non-negative area of 
// a triangle
import java.util.*;
class GFG
{ 
static int minimumIncrease(int a, int b,
                           int c)
{
    // push the three sides 
    // to a array
    int arr[] = { a, b, c };
  
    // sort the array
    Arrays.sort(arr);
  
    // check if sum is greater
    // than third side
    if (arr[0] + arr[1] >= arr[2])
        return 0;
    else
        return arr[2] - (arr[0] + arr[1]);
}
  
// Driver Code
public static void main (String[] args) 
{
    int a = 3, b = 5, c = 10;
  
    System.out.println(minimumIncrease(a, b, c));
}
}
  
// This code is contributed
// by Shashank


Python 3
# Python program to find Minimum 
# increase in sides to get 
# non-negative area of a triangle 
  
# Function to return the 
# minimum increase in side 
# lengths of the triangle 
def minimumIncrease(a, b, c) :
  
    # push the three sides
    # to a array 
    arr = [ a, b, c ]
  
    # sort the array 
    arr.sort()
  
    # check if sum is greater
    # than third side
    if arr[0] + arr[1] >= arr[2] :
        return 0
  
    else :
        return arr[2] - (arr[0] + arr[1])
  
# Driver code     
if __name__ == "__main__" :
  
    a, b, c = 3, 5, 10
    print(minimumIncrease(a, b, c))
  
# This code is contributed
# by ANKITRAI1


C#
// C# Program to find Minimum 
// increment in the sides required 
// to get non-negative area of 
// a triangle
using System;
  
class GFG
{ 
static int minimumIncrease(int a, int b,
                           int c)
{
    // push the three sides 
    // to a array
    int[] arr = { a, b, c };
  
    // sort the array
    Array.Sort(arr);
  
    // check if sum is greater
    // than third side
    if (arr[0] + arr[1] >= arr[2])
        return 0;
    else
        return arr[2] - (arr[0] + arr[1]);
}
  
// Driver Code
public static void Main () 
{
    int a = 3, b = 5, c = 10;
  
    Console.Write(minimumIncrease(a, b, c));
}
}
  
// This code is contributed 
// by ChitraNayal


PHP
= $arr[2])
        return 0;
    else
        return $arr[2] - ($arr[0] + $arr[1]);
}
  
// Driver Code
$a = 3;
$b = 5;
$c = 10;
  
echo minimumIncrease($a, $b, $c);
  
// This code is contributed
// by ChitraNayal
?>


输出:
2