Giả sử tôi cách đích đến mười bước. Tôi đi bộ theo câu nói cũ, "Hai bước tiến và một bước lùi". Tôi tiến lên hai bước, lùi một bước, cho đến khi tôi đứng chính xác về đích. (Điều này có thể liên quan đến việc bước qua đích đến của tôi và quay lại điểm đó). Tôi đã đi được bao nhiêu bước?
Tất nhiên, tôi có thể không đi được 10 bước. Tôi có thể đi được 11 bước, hoặc 100. Tôi có thể đo mười bước, và tiếp tục đi lại để giải quyết vấn đề, hoặc ... Tôi có thể viết một số mã!
- Viết một hàm để tìm ra bao nhiêu bước để có N bước đi, theo trình tự: hai bước tiến, lùi một bước.
- Giả sử bạn đã bắt đầu ở bước 0. Đếm "hai bước tiến" là hai bước chứ không phải một.
- Giả sử tất cả các bước là một chiều dài đồng đều.
- Nó sẽ trả về số bước đầu tiên được thực hiện khi bạn đạt đến không gian đó. (Ví dụ: 10 bước đi mất 26 bước, nhưng bạn sẽ nhấn lại ở bước 30). Chúng tôi quan tâm đến 26.
- Sử dụng bất kỳ ngôn ngữ nào bạn thích.
- Nó nên chấp nhận bất kỳ số nguyên dương nào làm đầu vào. Điều này thể hiện bước mục tiêu.
- Số byte nhỏ nhất giành chiến thắng.
Thí dụ:
Tôi muốn đi được 5 bước:
| | | | | | <- 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
Trong trường hợp này, kết quả của hàm sẽ là 11.
Kết quả ví dụ:
1 => 3
5 => 11
9 => 23
10 => 26
11 => 29
100 => 296
1000 => 2996
10000 => 29996
100000 => 299996
Hãy vui vẻ, người chơi golf!