Largest rectangle that can be inscribed in a semicircle

Given a semicircle of radius r, we have to find the largest rectangle that can be inscribed in the semicircle, with base lying on the diameter.

Examples:

Input : r = 4
Output : 16

Input : r = 5 
Output :25

Let r be the radius of the semicircle, x one half of the base of the rectangle, and y the height of the rectangle. We want to maximize the area, A = 2xy.
So from the diagram we have,
y = √(r^2 – x^2)
So, A = 2*x*(√(r^2 – x^2)), or dA/dx = 2*√(r^2 – x^2) -2*x^2/√(r^2 – x^2)
Setting this derivative equal to 0 and solving for x,
dA/dx = 0
or, 2*√(r^2 – x^2) – 2*x^2/√(r^2 – x^2) = 0
2r^2 – 4x^2 = 0
x = r/√2

This is the maximum of the area as,
dA/dx > 0 when x > r/√2
and, dA/dx < 0 when x > r/√2

Since y =√(r^2 – x^2) we then have

y = r/√2

Thus, the base of the rectangle has length = r/√2 and its height has length √2*r/2.
So, Area, A=r^2

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ Program to find the
// the biggest rectangle
// which can be inscribed
// within the semicircle
#include <bits/stdc++.h>
using namespace std;
  
// Function to find the area
// of the biggest rectangle
float rectanglearea(float r)
{
  
    // the radius cannot be negative
    if (r < 0)
        return -1;
  
    // area of the rectangle
    float a = r * r;
  
    return a;
}
  
// Driver code
int main()
{
    float r = 5;
    cout << rectanglearea(r) << endl;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program to find the
// the biggest rectangle
// which can be inscribed
// within the semicircle
class GFG 
{
  
// Function to find the area
// of the biggest rectangle
static float rectanglearea(float r)
{
  
// the radius cannot be negative
if (r < 0)
    return -1;
  
// area of the rectangle
float a = r * r;
  
return a;
}
  
// Driver code
public static void main(String[] args)
{
    float r = 5;
    System.out.println((int)rectanglearea(r));
}
}
  
// This code is contributed
// by ChitraNayal

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 Program to find the 
# the biggest rectangle 
# which can be inscribed 
# within the semicircle 
  
# Function to find the area 
# of the biggest rectangle 
def rectanglearea(r) :
  
    # the radius cannot
    # be negative 
    if r < 0 :
        return -1
  
    # area of the rectangle 
    a = r * r
  
    return a
  
# Driver Code
if __name__ == "__main__" :
  
    r = 5
  
    # function calling
    print(rectanglearea(r))
  
# This code is contributed 
# by ANKITRAI1

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Program to find the
// the biggest rectangle
// which can be inscribed
// within the semicircle
using System;
  
class GFG 
{
  
// Function to find the area
// of the biggest rectangle
static float rectanglearea(float r)
{
  
// the radius cannot be negative
if (r < 0)
    return -1;
  
// area of the rectangle
float a = r * r;
  
return a;
}
  
// Driver code
public static void Main() 
{
    float r = 5;
    Console.Write((int)rectanglearea(r));
}
}
  
// This code is contributed
// by ChitraNayal

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php 
// PHP Program to find the
// the biggest rectangle
// which can be inscribed
// within the semicircle
  
// Function to find the area
// of the biggest rectangle
function rectanglearea($r)
{
  
    // the radius cannot 
    // be negative
    if ($r < 0)
        return -1;
  
    // area of the rectangle
    $a = $r * $r;
  
    return $a;
}
  
// Driver code
$r = 5;
echo rectanglearea($r)."\n";
  
// This code is contributed 
// by ChitraNayal
?>

chevron_right



OUTPUT :

25


My Personal Notes arrow_drop_up