Diyelim ki hedefimden on adım uzaktayım. Orada "İki adım ileri ve bir adım geri" diyerek yürürüm. Tam olarak hedefim üzerinde durana kadar iki adım ileri gidiyorum. (Bu, hedefimin ötesine geçip ona geri dönmeyi içerebilir). Kaç adım yürüdüm?
Tabii ki, 10 adım uzakta olmayabilirim. 11 adım ötede veya 100 olabilirim. On adım ölçebilirim ve sorunu çözmek için ileri geri yürümeye devam edebilirim, ya da ... Biraz kod yazabilirim!
- Sırayla N adımı uzaklaştırmak için kaç adım gerektiğini çözmek için bir işlev yazın: iki adım ileri, bir adım geri.
- 0. adımda başladığınızı varsayın. "İki adım ileri" yi bir değil iki adım olarak sayın.
- Tüm adımların aynı uzunlukta olduğunu varsayalım.
- Bu alana ulaştığınızda ilk atılan adım sayısını döndürmelidir. (Örneğin, 10 adım ötede 26 adım sürer, ancak adım 30'da tekrar vurursunuz). 26 ile ilgileniyoruz.
- İstediğiniz dili kullanın.
- Herhangi bir pozitif tamsayıyı girdi olarak kabul etmelidir. Bu hedef adımı temsil eder.
- En az bayt kazanır.
Misal:
5 adım uzaklaşmak istiyorum:
| | | | | | <- 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
Bu durumda, işlevin sonucu 11 olur.
Örnek sonuçlar:
1 => 3
5 => 11
9 => 23
10 => 26
11 => 29
100 => 296
1000 => 2996
10000 => 29996
100000 => 299996
İyi eğlenceler, golfçüler!
