Maximum number of pieces in N cuts - GeeksforGeeks

20 Apr, 2021
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++
Java
Python 3
C#
PHP
Javascript
// 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 codeint 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 program to find maximum// no of pieces by given number// of cutsimport 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 codepublic 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 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 codeif __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# program to find maximum// no of pieces by given number// of cutsusing 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 codestatic 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 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 piecesecho "Max number of pieces for n = " .    $n . " is " . findMaximumPieces(3); // This code is contributed// by Akanksha Rai(Abby_akku)?>
<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 3var n = 3; // Finding and printing the max number of piecesdocument.write("Max number of pieces for n = " + n    + " is " + findMaximumPieces(3)); // This code is contributed by noob2000.</script>
Max number of pieces for n = 3 is 6
 
Kirti_Mangal
Mahadev99
Akanksha_Rai
ukasp
noob2000
math
school-programming
Geometric
Mathematical
Mathematical
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Circle and Lattice Points
Program for distance between two points on earth
Convex Hull | Set 1 (Jarvis's Algorithm or Wrapping)
Convex Hull | Set 2 (Graham Scan)
Given n line segments, find if any two segments intersect
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7