इस लेख में हम एक दिलचस्प समस्या देखेंगे। हमारे पास N सिक्के हैं। हमें यह पता लगाना है कि यदि हम सिक्कों को पिरामिड के रूप में व्यवस्थित करें तो अधिकतम कितनी ऊंचाई बना सकते हैं। इस व्यवस्था में पहली पंक्ति में 1 सिक्का, दूसरी में 2 सिक्के, तीसरी में 3 सिक्के और इसी तरह आगे होगा।
दिए गए आरेख में हम देख सकते हैं कि ऊंचाई 3 का पिरामिड बनाने के लिए न्यूनतम 6 सिक्कों की आवश्यकता होती है। जब तक हमारे पास 10 सिक्के नहीं होंगे, हम ऊंचाई 4 नहीं बना सकते। अब देखते हैं कि अधिकतम ऊंचाई कैसे जांचें।
हम इस सूत्र का उपयोग करके ऊंचाई प्राप्त कर सकते हैं:
ऊंचाई = (-1 + √(1 + 8N)) / 2
उदाहरण
#include <iostream>
#include <cmath>
using namespace std;
int getMaxHeight(int n) {
int height = (-1 + sqrt(1 + 8 * n)) / 2;
return height;
}
int main() {
int N;
cout << "सिक्कों की संख्या दर्ज करें: ";
cin >> N;
cout << "पिरामिड की ऊंचाई: " << getMaxHeight(N);
return 0;
}
आउटपुट
सिक्कों की संख्या दर्ज करें: 13 पिरामिड की ऊंचाई: 4