কম্পিউটার

C++ এ N কাটে সর্বাধিক সংখ্যা


প্রদত্ত কাজটি হল সমান আকারের সর্বাধিক সংখ্যক বর্গক্ষেত্র বা আয়তক্ষেত্রের টুকরো গণনা করা যা একটি প্রদত্ত বর্গক্ষেত্র টুকরাটি অনুভূমিকভাবে বা উল্লম্বভাবে কাটার মোট N সংখ্যায় কাটার মাধ্যমে পাওয়া যেতে পারে। পি>

আসুন এখন বুঝতে পারি −

একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে

ইনপুট − N=8

আউটপুট − ২৫

ব্যাখ্যা − যখন N=8, উল্লম্ব কাটের সংখ্যা =4 এবং অনুভূমিক কাটের সংখ্যা =4।

মোট টুকরো =25

৷ ৷ ৷
1 2 3 45
6 7 8 9 10
11 12 13 1415
16 17 18 19 20
21 22 23 2425

ইনপুট৷ − 7

আউটপুট৷ - ২০

৷ ৷
1 2 3 45
6 7 8 9 10
11 12 13 1415
16 17 18 19 20

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • যদি N হল কাটের সংখ্যা এবং আমাদের ফলস্বরূপ অংশগুলিকে সর্বাধিক করতে হয় তাহলে সমান সংখ্যক অনুভূমিক এবং উল্লম্ব কাট করতে হবে৷

    যদি N জোড় হয় তবে সমান অনুভূমিক এবং উল্লম্ব কাট হবে অন্যথায় যদি N বিজোড় হয়, তাহলে অনুভূমিক কাটগুলি উল্লম্ব কাটের চেয়ে 1 বেশি হবে বা বিপরীতভাবে।

    অতএব, অনুভূমিক সংখ্যা =N/2 এবং উল্লম্ব কাট =N-H.

  • ফাংশনে MaxPieces() একটি ভেরিয়েবল H =N/2 টাইপের int এর অনুভূমিক কাটের সংখ্যা সংরক্ষণ করে।

  • উল্লম্ব কাটের সংখ্যা সংরক্ষণ করতে int-এর অন্য একটি ভেরিয়েবল V=N-H শুরু করুন।

  • টুকরোগুলির চূড়ান্ত সংখ্যা =(অনুভূমিক সারি)*(উল্লম্ব সারি) =(H+1)*(V+1)

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int MaxPieces(int N){
   //H is the number of horizontal cuts
   int H = N / 2;
   //V is the number of vertical cuts
   int V = N-H;
   // maximum number of pieces = (H+1)*(V+1)
   return ((H + 1) * (V + 1));
}
//Main function
int main(){
   //Number of cuts
   int N = 7;
   cout << "Max pieces = "<<MaxPieces(N);
   return 0;
}

আউটপুট

আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −

20

  1. C++ এ মিতব্যয়ী নম্বর

  2. C++ পেন্টাটোপ নম্বর

  3. C++ পাথের দৈর্ঘ্য সর্বাধিক সংখ্যক বাঁক রয়েছে

  4. C++ এ N কেটে যাওয়ার পর বৃত্তের টুকরোগুলো গণনা করুন