दिया गया कार्य N कुल कट की संख्या में क्षैतिज या लंबवत रूप से एक दिए गए वर्ग टुकड़े को काटकर प्राप्त किए जा सकने वाले समान आकार के वर्ग या आयत टुकड़ों की अधिकतम संख्या की गणना करना है।
उदाहरण से समझते हैं
इनपुट - N=8
आउटपुट - 25
व्याख्या - जब N=8, लंबवत कट की संख्या = 4 और क्षैतिज कट की संख्या = 4। कुल टुकड़े = 25
इनपुट - 7
आउटपुट - 20
प्रयुक्त दृष्टिकोण
यदि N कट की संख्या है और हमें परिणामी टुकड़ों को अधिकतम करना है तो समान संख्या में क्षैतिज और लंबवत कट बनाने होंगे।
यदि N सम है तो क्षैतिज और लंबवत कट समान होंगे अन्यथा यदि N विषम है, तो क्षैतिज कट लंबवत कट से 1 अधिक होंगे या इसके विपरीत।
इसलिए, क्षैतिज कट की संख्या = N/2 और लंबवत कट = N-H।
MaxPieces() फंक्शन में H = N/2 टाइप का एक वेरिएबल आरंभ करें क्षैतिज कट की संख्या स्टोर करने के लिए।
V = N-H टाइप का एक और वेरिएबल आरंभ करें लंबवत कट की संख्या स्टोर करने के लिए।
टुकड़ों की अंतिम संख्या = (क्षैतिज पंक्तियाँ)*(लंबवत पंक्तियाँ) = (H+1)*(V+1)
C++ प्रोग्राम उदाहरण
#include <bits/stdc++.h>
using namespace std;
int MaxPieces(int N) {
// H क्षैतिज कट की संख्या है
int H = N / 2;
// V लंबवत कट की संख्या है
int V = N - H;
// टुकड़ों की अधिकतम संख्या = (H+1)*(V+1)
return ((H + 1) * (V + 1));
}
int main() {
// कट की संख्या
int N = 7;
cout << "Max pieces = " << MaxPieces(N);
return 0;
}आउटपुट
20