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