दिया गया कार्य भुजा 'a' वाले वर्गों की अधिकतम संख्या ढूंढना है जो आधार 's' वाले दिए गए समकोण समद्विबाहु त्रिभुज (An isosceles triangle has at least 2 equal sides) के अंदर फिट हो सकते हैं।
उदाहरण
इनपुट
s=5, a=1
आउटपुट
10
व्याख्या - आधार में वर्गों की संख्या की गणना s को a से विभाजित करके और 1 घटाकर की जा सकती है। तो आधार में वर्गों की संख्या = 5/1 - 1 = 4।
इसी तरह जब नीचे 4 वर्ग रखे जाते हैं तो हमें आधार (s-a) वाला एक नया समद्विबाहु त्रिभुज मिलता है और फिर हम वही प्रक्रिया दोहराते हैं और 3 वर्ग प्राप्त करते हैं और इसी तरह जब तक शीर्ष पर एक वर्ग रखा जाता है।

इनपुट
s=7, a=2
आउटपुट
3
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है
- अधिकतम वर्गों की संख्या ढूंढने के लिए हमें त्रिभुज के आधार से शुरू करना होगा और वर्गों की संख्या ढूंढनी होगी।
- वर्गों की संख्या ढूंढने के लिए हम आधार s को वर्ग की भुजा a से विभाजित करेंगे और 1 घटाएंगे = s/a - 1।
- फिर यह हमें आधार (s - a) वाला एक और समद्विबाहु त्रिभुज छोड़ देगा जो पिछली पंक्ति से एक कम वर्ग को समायोजित करेगा जिसे हम निम्न तरीके से गणना कर सकते हैं -
अगली पंक्ति में वर्ग = (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){
// अधिकतम वर्गों की गणना के लिए सूत्र
return ((s / a) - 1) * (s / a) / 2;
}
// Main फ़ंक्शन
int main(){
int s = 5, a = 1;
cout << "संभावित अधिकतम वर्ग हैं: " << Max(s,a);
return 0;
}
आउटपुट
संभावित अधिकतम वर्ग हैं: 10