Maximum number of pieces in N cuts
Given a square piece and a total number of cuts available n, Find out the maximum number of rectangular or square pieces of equal size that can be obtained with n cuts. The allowed cuts are horizontal and vertical cut.
Note: Stacking and folding is not allowed.
Examples:
Input : n = 1 Output : 2 Explanation :
Input : n = 2 Output : 4 Explanation :
Input : n = 3 Output : 6 Explanation :
Given is n which is the number of allowed cuts. As it is required to maximize number of pieces after n cuts, So number of horizontal cuts will be equal to number of vertical cuts. This can be prove using differentiation. So number of horizontal cut will be n/2. and vertical cuts will be n-n/2.
So number of pieces = (horizontal cut + 1) * (vertical cut + 1).
Program:
C++
// C++ program to find maximum no of pieces // by given number of cuts #include <bits/stdc++.h> using namespace std; // Function for finding maximum pieces // with n cuts. int findMaximumPieces( int n) { // to maximize number of pieces // x is the horizontal cuts int x = n / 2; // Now (x) is the horizontal cuts // and (n-x) is vertical cuts, then // maximum number of pieces = (x+1)*(n-x+1) return ((x + 1) * (n - x + 1)); } // Driver code int main() { // Taking the maximum number of cuts allowed as 3 int n = 3; // Finding and printing the max number of pieces cout << "Max number of pieces for n = " << n << " is " << findMaximumPieces(3); return 0; } |
Java
// Java program to find maximum // no of pieces by given number // of cuts import java.util.*; class GFG { // Function for finding maximum // pieces with n cuts. public static int findMaximumPieces( int n) { // to maximize number of pieces // x is the horizontal cuts int x = n / 2 ; // Now (x) is the horizontal cuts // and (n-x) is vertical cuts, then // maximum number of pieces = (x+1)*(n-x+1) return ((x + 1 ) * (n - x + 1 )); } // Driver code public static void main (String[] args) { // Taking the maximum number // of cuts allowed as 3 int n = 3 ; // Finding and printing the // max number of pieces System.out.print( "Max number of pieces for n = " + n + " is " + findMaximumPieces( 3 )); } } // This code is contributed by Kirti_Mangal |
Python 3
# Python 3 program to find maximum no of pieces # by given number of cuts # Function for finding maximum pieces # with n cuts. def findMaximumPieces(n): # to maximize number of pieces # x is the horizontal cuts x = n / / 2 # Now (x) is the horizontal cuts # and (n-x) is vertical cuts, then # maximum number of pieces = (x+1)*(n-x+1) return ((x + 1 ) * (n - x + 1 )) # Driver code if __name__ = = "__main__" : #Taking the maximum number of cuts allowed as 3 n = 3 # Finding and printing the max number of pieces print ( "Max number of pieces for n = " + str ( n) + " is " + str (findMaximumPieces( 3 ))) # This code is contributed by ChitraNayal |
C#
// C# program to find maximum // no of pieces by given number // of cuts using System; class GFG { // Function for finding maximum // pieces with n cuts. public static int findMaximumPieces( int n) { // to maximize number of pieces // x is the horizontal cuts int x = n / 2; // Now (x) is the horizontal // cuts and (n-x) is vertical // cuts, then maximum number // of pieces = (x+1)*(n-x+1) return ((x + 1) * (n - x + 1)); } // Driver code static public void Main () { // Taking the maximum number // of cuts allowed as 3 int n = 3; // Finding and printing the // max number of pieces Console.Write( "Max number of pieces for n = " + n + " is " + findMaximumPieces(3)); } } // This code is contributed by Mahadev |
PHP
<?php // PHP program to find maximum no // of pieces by given number of cuts // Function for finding maximum // pieces with n cuts. function findMaximumPieces( $n ) { // to maximize number of pieces // x is the horizontal cuts $x = (int)( $n / 2); // Now (x) is the horizontal cuts // and (n-x) is vertical cuts, then // maximum number of pieces = (x+1)*(n-x+1) return (( $x + 1) * ( $n - $x + 1)); } // Driver code // Taking the maximum number // of cuts allowed as 3 $n = 3; // Finding and printing the // max number of pieces echo "Max number of pieces for n = " . $n . " is " . findMaximumPieces(3); // This code is contributed // by Akanksha Rai(Abby_akku) ?> |
Javascript
<script> // Javascript program to find maximum no of pieces // by given number of cuts // Function for finding maximum pieces // with n cuts. function findMaximumPieces(n) { // to maximize number of pieces // x is the horizontal cuts var x = parseInt(n / 2); // Now (x) is the horizontal cuts // and (n-x) is vertical cuts, then // maximum number of pieces = (x+1)*(n-x+1) return ((x + 1) * (n - x + 1)); } // Driver code // Taking the maximum number of cuts allowed as 3 var n = 3; // Finding and printing the max number of pieces document.write( "Max number of pieces for n = " + n + " is " + findMaximumPieces(3)); // This code is contributed by noob2000. </script> |
Output:
Max number of pieces for n = 3 is 6