मान लीजिए कि मैं अपनी मंजिल से दस कदम दूर हूं। मैं पुरानी कहावत का पालन करते हुए चलता हूं, "दो कदम आगे और एक कदम पीछे"। मैं दो कदम आगे बढ़ाता हूं, एक पीछे, जब तक कि मैं अपने गंतव्य पर बिल्कुल नहीं खड़ा हूं। (इसमें मेरे गंतव्य पर कदम रखना और उसमें वापस आना शामिल हो सकता है)। कितने कदम चले?
बेशक, मैं 10 कदम दूर नहीं हो सकता। मैं 11 कदम दूर हो सकता हूं, या 100. मैं दस पेस माप सकता हूं, और समस्या को हल करने के लिए आगे-पीछे घूमता रह सकता हूं, या ... मैं कुछ कोड लिख सकता हूं!
- इस क्रम में एन चरणों को प्राप्त करने के लिए कितने चरण लगते हैं, यह जानने के लिए एक कार्य लिखें: दो कदम आगे, एक कदम पीछे।
- मान लें कि आपने चरण ० पर शुरू किया है। "दो कदम आगे" की गिनती दो चरणों के रूप में करें, एक पर नहीं।
- मान लें कि सभी चरण एक समान लंबाई हैं।
- जब आप उस स्थान पर पहुँचते हैं, तो पहले उठाए गए कदमों की संख्या वापस कर देनी चाहिए। (उदाहरण के लिए, 10 कदम दूर 26 कदम लगते हैं, लेकिन आप इसे फिर से 30 कदम पर मारेंगे)। हम 26 में रुचि रखते हैं।
- अपनी पसंद की किसी भी भाषा का उपयोग करें।
- इसे इनपुट के रूप में किसी भी सकारात्मक पूर्णांक को स्वीकार करना चाहिए। यह लक्ष्य चरण का प्रतिनिधित्व करता है।
- सबसे छोटी संख्या बाइट्स जीतती है।
उदाहरण:
मैं 5 कदम दूर जाना चाहता हूं:
| | | | | | <- I'm at step 0, not yet on the grid.
| |X| | | | <- I take two steps forward, I'm on step 2: the count is 2
|X| | | | | <- I take one step back, I'm on step 1: the count is 3
| | |X| | | <- I take two steps forward, I'm on step 3: the count is 5
| |X| | | | <- I take one step back, I'm on step 2 again: the count is 6
| | | |X| | <- I take two steps forward, I'm on step 4: the count is 8
| | |X| | | <- I take one step back, I'm on step 3 again: the count is 9
| | | | |X| <- I take two steps forward, I'm on step 5: the count is 11
इस मामले में, फ़ंक्शन का परिणाम 11 होगा।
उदाहरण के परिणाम:
1 => 3
5 => 11
9 => 23
10 => 26
11 => 29
100 => 296
1000 => 2996
10000 => 29996
100000 => 299996
मज़े करो, गोल्फरों!