Maximum number of 2×2 squares that can be fit inside a right isosceles triangle
Last Updated :
20 Jun, 2022
What is the maximum number of squares of size 2×2 units that can be fit in a right-angled isosceles triangle of a given base (in units).
A side of the square must be parallel to the base of the triangle.
Examples:
Input : 8
Output : 6
Please refer below diagram for explanation.
Input : 7
Output : 3
Since the triangle is isosceles, the given base would also be equal to the height. Now in the diagonal part, we would always need an extra length of 2 units in both height and base of the triangle to accommodate a triangle. (The CF and AM segment of the triangle in the image. The part that does not contribute to any square). In the remaining length of base, we can construct length / 2 squares. Since each square is of 2 units, same would be the case of height, there is no need to calculate that again.
So, for each level of given length we can construct “(length-2)/2” squares. This gives us a base of “(length-2)” above it. Continuing this process to get the no of squares for all available “length-2” height, we can calculate the squares.
while length > 2
answer += (length - 2 )/2
length = length - 2
For more effective way, we can use the formula of sum of AP n * ( n + 1 ) / 2, where n = length – 2
C++
#include<bits/stdc++.h>
using namespace std;
int numberOfSquares( int base)
{
base = (base - 2);
base = floor (base / 2);
return base * (base + 1)/2;
}
int main()
{
int base = 8;
cout << numberOfSquares(base);
return 0;
}
|
Java
class Squares
{
public static int numberOfSquares( int base)
{
base = (base - 2 );
base = Math.floorDiv(base, 2 );
return base * (base + 1 )/ 2 ;
}
public static void main(String args[])
{
int base = 8 ;
System.out.println(numberOfSquares(base));
}
}
|
Python3
def numberOfSquares(base):
base = (base - 2 )
base = base / / 2
return base * (base + 1 ) / 2
base = 8
print (numberOfSquares(base))
|
C#
using System;
class GFG {
public static int numberOfSquares( int _base)
{
_base = (_base - 2);
_base = _base / 2;
return _base * (_base + 1)/2;
}
public static void Main()
{
int _base = 8;
Console.WriteLine(numberOfSquares(_base));
}
}
|
PHP
<?php
function numberOfSquares( $base )
{
$base = ( $base - 2);
$base = intdiv( $base , 2);
return $base * ( $base + 1)/2;
}
$base = 8;
echo numberOfSquares( $base );
?>
|
Javascript
<script>
function numberOfSquares(base)
{
base = (base - 2);
base = Math.floor(base / 2);
return base * (base + 1) / 2;
}
let base = 8;
document.write(numberOfSquares(base));
</script>
|
Output:
6
Time complexity : O(1)
Auxiliary Space : O(1)
Share your thoughts in the comments
Please Login to comment...