समस्या विवरण
मान लीजिए हमारे पास n सिक्के हैं जिन्हें हम सीढ़ी के आकार में बनाना चाहते हैं, प्रत्येक k-वें पंक्ति में ठीक k सिक्के होने चाहिए। इसलिए यदि हमारे पास n है, तो हमें पूर्ण सीढ़ी पंक्तियों की कुल संख्या ज्ञात करनी है जो बनाई जा सकती हैं।
उदाहरण
यदि इनपुट है: 5, तो आउटपुट होगा 2, क्योंकि 5 सिक्कों का उपयोग करके हम दो पूर्ण सीढ़ी पंक्तियां बना सकते हैं, तीसरी को तीन की आवश्यकता है, लेकिन हमारे पास 2 शेष हैं।
* * * * * *
इसे सीधे इस सूत्र का उपयोग करके किया जा सकता है:
$$\frac{\sqrt{(8n+1)}-1}{2}$$
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int arrangeCoins(int n) {
return (sqrt(8*(long long)n+1)-1)/2;
}
};
int main() {
Solution ob;
cout << (ob.arrangeCoins(13));
return 0;
}
इनपुट
13
आउटपुट
4