समस्या
इस स्थिति पर विचार करें -
ऐसे n बल्ब हैं जो प्रारंभ में बंद हैं। हम पहले सभी बल्बों को चालू करते हैं। फिर, हम हर सेकेंड बल्ब को बंद कर देते हैं। तीसरे दौर में, हम हर तीसरे बल्ब को चालू करते हैं (चालू होने पर चालू करते हैं या चालू होने पर बंद करते हैं)।
सामान्य तौर पर, ith राउंड के लिए, हम प्रत्येक i बल्ब को टॉगल करते हैं। और अंत में नौवें दौर के लिए, हम केवल अंतिम बल्ब को चालू करते हैं।
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो n को एकमात्र इनपुट के रूप में लेता है और यह पता लगाता है कि n राउंड के बाद कितने बल्ब चालू हैं।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const n = 4;
तब आउटपुट होना चाहिए -
const output = 2;
आउटपुट स्पष्टीकरण:
स्टेट एरे में, 0 इंगित करता है जबकि 1 -
. पर इंगित करता है <टेबल><थेड>इसलिए पांचवें दौर के बाद केवल दो बल्ब ही चालू होते हैं।
उदाहरण
इसके लिए कोड होगा -
const n = 5; const findOn = (n = 1) => { let off = 0; let on = n; while(off <= on){ let mid = Math.floor((off + on) / 2); if(mid * mid > n){ on = mid - 1; }else{ off = mid + 1; }; }; return Math.floor(on); }; console.log(findOn(n));
आउटपुट
और कंसोल में आउटपुट होगा -
2