목적지에서 10 걸음 떨어진 곳에 있다고 가정하겠습니다. 나는 "두 걸음 앞으로 한 걸음 뒤로"라는 옛말에 따라 거기를 걷습니다. 목적지에 정확히 서있을 때까지 한 걸음 뒤로 두 단계 앞으로 나아갑니다. (여기에는 목적지를 건너서 돌아 오는 것이 포함될 수 있습니다). 몇 걸음 걸었습니까?
물론, 나는 10 걸음 떨어져 있지 않을 수도 있습니다. 11 걸음 또는 100 걸음 거리에 있습니다. 10 단계를 측정하고 문제를 해결하기 위해 앞뒤로 계속 걸어 갈 수 있습니다. 또는 ... 코드를 작성할 수 있습니다!
- 순서대로 N 단계를 제거하는 데 걸리는 단계 수를 계산하는 함수를 작성하십시오. 두 단계 앞으로, 한 단계 뒤로.
- 0 단계에서 시작했다고 가정합니다. "2 단계 앞으로"는 1 단계가 아닌 2 단계로 계산하십시오.
- 모든 단계가 균일 한 길이라고 가정하십시오.
- 해당 공간에 도달했을 때 처음 수행 한 단계 수를 반환해야합니다. (예를 들어, 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
골퍼들!
