আমাদের দৈর্ঘ্য L এবং প্রস্থ B এর একটি আয়তক্ষেত্র দেওয়া হয়েছে, যেমন L>=B। লক্ষ্য হল LXB আকারের একটি আয়তক্ষেত্র মিটমাট করতে পারে এমন স্কোয়ারের সংখ্যা খুঁজে বের করা।
উপরের চিত্রটি 3 X 2 আকারের একটি আয়তক্ষেত্র দেখায়৷ এতে 2, 2X2 বর্গক্ষেত্র এবং 6,1X1 বর্গক্ষেত্র রয়েছে৷
মোট বর্গ =6+2=8।
-
LXB আকারের প্রতিটি আয়তক্ষেত্রে 1X1 বর্গক্ষেত্রের L*B সংখ্যা রয়েছে।
-
সবচেয়ে বড় স্কোয়ারের আকার BXB।
-
L=B=1 এর জন্য, বর্গ =1।
-
L=B=2 এর জন্য, বর্গ =1 + 4 =5। ( 2X2 এর 1, 1X1 এর 4)
-
L=B=3 এর জন্য, বর্গ =1 + 4 + 9 =14। ( 3X3-এর 1, 2X2-এর 4, 1X1-এর 9)
-
L=B=4 এর জন্য, বর্গ =1 + 4 + 9 + 16 =30 ( 4X4 এর 1, 3X3 এর 4, 2X2 এর 9, 1X1 এর 16)
-
……………..
-
প্রতিটি BXB আয়তক্ষেত্রের জন্য বর্গ সংখ্যা হল
for ( i=1 to B ) No. of squares + = i*i.
যখন L>B. আরো স্কোয়ার যোগ করা হবে. যখন L=B+1 ( B এর চেয়ে 1 অতিরিক্ত কলাম)। তারপর যোগ করা বর্গক্ষেত্র হবে L + ( L-1) + ....+3+2+1 =L(L+1)/2
তাই অতিরিক্ত L-B কলামের জন্য যোগ করা বর্গক্ষেত্র হবে ( L-B ) * (B)(B+1)/2
-
BXB + (L-B) * (L)(L+1)/2 তে মোট বর্গক্ষেত্র হবে।
-
এছাড়াও আপনি 8 নম্বর ধাপে সিরিজের (1 + 4 + 9 +......BXB) জন্য সূত্র B(B+1)(2B+1)/6 ব্যবহার করতে পারেন।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − L=4, B=2
আউটপুট − আয়তক্ষেত্রে বর্গক্ষেত্রের সংখ্যা − 11
ব্যাখ্যা − 1X1 এর 8 বর্গ এবং 2X2 এর 3।
ইনপুট − L=3, B=3
আউটপুট − আয়তক্ষেত্রে বর্গক্ষেত্রের সংখ্যা − 14
ব্যাখ্যা − 1X1-এর 9টি বর্গ, 2X2-এর 4 এবং 3X3-এর 1৷
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা আয়তক্ষেত্রের মাত্রার জন্য একটি পূর্ণসংখ্যার দৈর্ঘ্য এবং প্রস্থ নিই।
-
ফাংশন numofSquares(int l, int b) মাত্রা নেয় এবং lXb আকারের আয়তক্ষেত্রে বর্গক্ষেত্রের সংখ্যা প্রদান করে।
-
সবচেয়ে বড় স্কোয়ার bXb এর জন্য। 1 থেকে b থেকে লুপের জন্য ব্যবহার করুন এবং প্রতিটি i*i বর্গক্ষেত্রে যোগ করুন।
-
এখন যদি l>b. নতুন যোগ করা বর্গ হবে (l-b)(b)(b+1)/2। এটিকে বর্গক্ষেত্রে যুক্ত করুন৷
৷ -
পছন্দসই ফলাফল হিসাবে বর্গক্ষেত্র ফেরত দিন।
দ্রষ্টব্য - রাখা দৈর্ঘ্য>=প্রস্থ
উদাহরণ
#include<iostream> using namespace std; int numofSquares(int l, int b){ int squares=0; for(int i=1;i<=b;i++) //squares inside biggest square of size breadth X breadth{ squares += i*i; } squares+=(l-b)*b*(b+1)/2; return squares; } int main(){ int length = 5, breadth = 4; //keep length always >= breadth cout << "Count of squares is :"<< numofSquares(length,breadth); }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of squares is :40