कार्य को देखते हुए 'ए' वाले वर्गों की अधिकतम संख्या ज्ञात करना है जो 'एस' के आधार के साथ एक समकोण समद्विबाहु त्रिभुज के अंदर फिट हो सकते हैं (एक समद्विबाहु त्रिभुज में कम से कम 2 बराबर पक्ष होते हैं)।
आइए अब एक उदाहरण का उपयोग करके समझते हैं कि हमें क्या करना है:
इनपुट
s=5, a=1
आउटपुट
10
स्पष्टीकरण - आधार में वर्गों की संख्या की गणना s को a से विभाजित करके और 1 घटाकर की जा सकती है। तो आधार में वर्गों की संख्या =5/1 - 1 =4।
इसी तरह जब नीचे के 4 वर्ग रखे जाते हैं तो हमें आधार (s-a) के साथ एक नया समद्विबाहु त्रिभुज मिलता है और फिर हम उसी प्रक्रिया को दोहराते हैं और 3 वर्ग प्राप्त करते हैं और इसी तरह जब तक एक वर्ग शीर्ष पर नहीं रखा जाता है।
इनपुट
s=7, a=2
आउटपुट
3
निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है
-
वर्गों की अधिकतम संख्या ज्ञात करने के लिए हमें त्रिभुज के आधार से प्रारंभ करना होगा और वर्गों की संख्या ज्ञात करनी होगी।
-
वर्गों की संख्या ज्ञात करने के लिए हम आधार s को वर्ग की भुजा से विभाजित करेंगे और उसमें से 1 घटा देंगे =s/a – 1.
-
फिर यह हमें आधार (एस - ए) के साथ एक और समद्विबाहु त्रिभुज छोड़ देगा जो इसके नीचे की पिछली पंक्ति की तुलना में एक कम वर्ग को समायोजित करेगा जिसे हम निम्नलिखित तरीके से गणना कर सकते हैं -
अगली पंक्ति में वर्ग =(s - a)/a – 1 =(s/a – a/a) – 1=s/a – 1 – 1 =s/a – 2 =पिछली पंक्ति से एक वर्ग कम।पी>
-
वर्गों की संख्या 1 तक पहुंचने तक घटती रहती है, इसलिए हमें केवल आधार पंक्ति में वर्गों की संख्या का पता लगाना है और अंतिम योग ज्ञात करने के लिए प्राकृतिक संख्याओं को जोड़ने के सूत्र का उपयोग करना है -
(n) * (n + 1) / 2
इस स्थिति में सूत्र बन जाता है - ((s / a) – 1) * (s / a) / 2
उदाहरण
#include<bits/stdc++.h> using namespace std; int Max(int s, int a){ //formula for calculating maximum squares return ((s / a) - 1) * (s / a) / 2; } //Main function int main(){ int s = 5, a = 1; cout <<"Maximum squares possible are: "<<Max(s,a); return 0; }
आउटपुट
10