नियम: 1. सभी HTML टैग अपरिवर्तित रखें 2. <code> और <pre> टैग के अंदर कोड अपरिवर्तित रखें 3. यदि कोड में रूसी स्ट्रिंग/वेरिएबल नाम हैं → उन्हें अंग्रेज़ी में अनुवादित करें (हिंदी में नहीं) 4. वर्णनात्मक पाठ का हिंदी में अनुवाद करें 5. केवल अनुवाद लौटाएँ, औ
JavaScript
Medium
closures
कार्य «नियम: 1. सभी HTML टैग अपरिवर्तित रखें 2. <code> और <pre> टैग के अंदर कोड अपरिवर्तित रखें 3. यदि कोड में रूसी स्ट्रिंग/वेरिएबल नाम हैं → उन्हें अंग्रेज़ी में अनुवादित करें (हिंदी में नहीं) 4. वर्णनात्मक पाठ का हिंदी में अनुवाद करें 5. केवल अनुवाद लौटाएँ, औ»
फ़ंक्शन `createCounter` को लागू करें, जो प्रारंभिक मान `start` और चरण `step` लेता है। फ़ंक्शन को तीन विधियों वाला एक ऑब्जेक्ट लौटाना चाहिए: `increment()` — वर्तमान मान को `step` से बढ़ाता है और इसे लौटाता है, `decrement()` — `step` से घटाता है और लौटाता है, `reset()` — मान को प्रारंभिक `start` पर रीसेट करता है। स्थिति को संग्रहीत करने के लिए क्लोज़र का उपयोग करें। प्रारंभिक मान `start` और चरण `step` पूर्णांक हैं।
इनपुट प्रारूप
पहली पंक्ति: start (पूर्णांक)। दूसरी पंक्ति: step (पूर्णांक)। तीसरी पंक्ति: कॉल की संख्या n (पूर्णांक, 1 ≤ n ≤ 20)। इसके बाद n पंक्तियाँ, प्रत्येक में एक कमांड है: 'increment', 'decrement' या 'reset'।
आउटपुट प्रारूप
प्रत्येक कमांड के लिए, कमांड निष्पादित करने के बाद काउंटर का वर्तमान मान प्रिंट करें, प्रत्येक को एक नई पंक्ति पर।
उदाहरण
उदाहरण 1
इनपुट
10
3
3
increment
increment
decrement
आउटपुट
13
16
13
उदाहरण 2
इनपुट
-5
2
4
decrement
decrement
increment
reset
आउटपुट
-7
-9
-7
-5
उदाहरण 3
इनपुट
5 4 6
आउटपुट
78.54
24.00
main.js