मान लीजिए कि n बल्ब हैं जो शुरू में बंद हैं। हम पहले सभी बल्बों को चालू करते हैं। फिर, हम हर दूसरे बल्ब को बंद कर देते हैं। तीसरे दौर में, हम हर तीसरे बल्ब को चालू करते हैं (चालू होने पर चालू करें या चालू होने पर बंद करें)। इसी तरह, i-वें राउंड के लिए, हम प्रत्येक i बल्ब को टॉगल करते हैं। एन-वें दौर के लिए, हम केवल अंतिम बल्ब को चालू करते हैं। इसलिए हमें यह पता लगाना है कि n राउंड के बाद कितने बल्ब चालू हैं। तो अगर इनपुट 3 है, तो परिणाम 1 होगा। ऐसा इसलिए है क्योंकि -
- सबसे पहले, तीन बल्ब [बंद, बंद, बंद] हैं।
- पहले दौर के बाद, तीन बल्ब [चालू, चालू, चालू] हैं।
- दूसरे दौर के बाद, तीन बल्ब [चालू, बंद, चालू] हैं।
- तीसरे दौर के बाद, तीन बल्ब [चालू, बंद, बंद] हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यह कदम सीधा है, हमें n का वर्गमूल निकालना है और वापस लौटना है।
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h> using namespace std; class Solution { public: int bulbSwitch(int n) { return sqrt(n); } }; main(){ Solution ob; cout << (ob.bulbSwitch(3)); }
इनपुट
3
आउटपुट
1