给定一个长度为l且宽度为b的矩形,我们需要找到可以用这些给定尺寸的矩形形成的最小正方形的面积。
例子:
Input : 1 2
Output : 4
We can form a 2 x 2 square
using two rectangles of size
1 x 2.
Input : 7 10
Output :4900
假设我们要从长度为l和b的矩形中得到一个边长为a的正方形。这意味着a是l & b的倍数。由于我们想要最小的平方,因此它必须是l & b的最小公倍数(LCM)。
程序1 :
C++
// C++ Program to find the area
// of the smallest square which
// can be formed with rectangles
// of given dimensions
#include
using namespace std;
// Recursive function to return gcd of a and b
int gcd(int a, int b)
{
// Everything divides 0
if (a == 0 || b == 0)
return 0;
// Base case
if (a == b)
return a;
// a is greater
if (a > b)
return gcd(a - b, b);
return gcd(a, b - a);
}
// Function to find the area
// of the smallest square
int squarearea(int l, int b)
{
// the length or breadth or side
// cannot be negative
if (l < 0 || b < 0)
return -1;
// LCM of length and breadth
int n = (l * b) / gcd(l, b);
// squaring to get the area
return n * n;
}
// Driver code
int main()
{
int l = 6, b = 4;
cout << squarearea(l, b) << endl;
return 0;
}
Java
// JavaProgram to find the area
// of the smallest square which
// can be formed with rectangles
// of given dimensions
class GFG
{
// Recursive function to
// return gcd of a and b
static int gcd(int a, int b)
{
// Everything divides 0
if (a == 0 || b == 0)
return 0;
// Base case
if (a == b)
return a;
// a is greater
if (a > b)
return gcd(a - b, b);
return gcd(a, b - a);
}
// Function to find the area
// of the smallest square
static int squarearea(int l, int b)
{
// the length or breadth or side
// cannot be negative
if (l < 0 || b < 0)
return -1;
// LCM of length and breadth
int n = (l * b) / gcd(l, b);
// squaring to get the area
return n * n;
}
// Driver code
public static void main(String[] args)
{
int l = 6, b = 4;
System.out.println(squarearea(l, b));
}
}
// This code is contributed
// by ChitraNayal
Python 3
# Python3 Program to find the area
# of the smallest square which
# can be formed with rectangles
# of given dimensions
# Recursive function to return gcd of a and b
def gcd( a, b):
# Everything divides 0
if (a == 0 or b == 0):
return 0
# Base case
if (a == b):
return a
# a is greater
if (a > b):
return gcd(a - b, b)
return gcd(a, b - a)
# Function to find the area
# of the smallest square
def squarearea( l, b):
# the length or breadth or side
# cannot be negative
if (l < 0 or b < 0):
return -1
# LCM of length and breadth
n = (l * b) / gcd(l, b)
# squaring to get the area
return n * n
# Driver code
if __name__=='__main__':
l = 6
b = 4
print(int(squarearea(l, b)))
#This code is contributed by ash264
C#
// C# Program to find the area
// of the smallest square which
// can be formed with rectangles
// of given dimensions
using System;
class GFG
{
// Recursive function to
// return gcd of a and b
static int gcd(int a, int b)
{
// Everything divides 0
if (a == 0 || b == 0)
return 0;
// Base case
if (a == b)
return a;
// a is greater
if (a > b)
return gcd(a - b, b);
return gcd(a, b - a);
}
// Function to find the area
// of the smallest square
static int squarearea(int l, int b)
{
// the length or breadth or side
// cannot be negative
if (l < 0 || b < 0)
return -1;
// LCM of length and breadth
int n = (l * b) / gcd(l, b);
// squaring to get the area
return n * n;
}
// Driver code
public static void Main()
{
int l = 6, b = 4;
Console.Write(squarearea(l, b));
}
}
// This code is contributed
// by ChitraNayal
PHP
$b)
return gcd($a - $b, $b);
return gcd($a, $b - $a);
}
// Function to find the area
// of the smallest square
function squarearea($l, $b)
{
// the length or breadth or side
// cannot be negative
if ($l < 0 || $b < 0)
return -1;
// LCM of length and breadth
$n = ($l * $b) / gcd($l, $b);
// squaring to get the area
return $n * $n;
}
// Driver code
$l = 6;
$b = 4;
echo squarearea($l, $b)."\n";
// This code is contributed
// by ChitraNayal
?>
Javascript
输出:
144