Numaraya ulaşmanın yolları


10

İlk sayının giriş ve ikinci sayı (hem pozitif tam, Dışlandı sıfır) göz önüne alındığında, aşağıdaki eylemleri kullanarak, ilk ikinci out yapabilir kaç yolu belirlemek: +1, +2ve *3. İşlemler soldan sağa basitçe uygulanır.

Örnekler:

  1. Girdi: 1 2. Çıktı: 1. Yani, sadece alabilir 2yaparak +1, tek yönlü yüzden.

  2. Girdi: 1 3. Çıktı: 3. Yani, yaptığını ya tarafından 3 alabilir +2veya +1+1veya*3

  3. Girdi: 1 4. Çıktı: 4.

  4. Girdi: 2 6. Çıktı: 6.

  5. Girdi: 2 7. Çıktı: 9.

  6. Girdi: 1 10. Çıktı: 84.

Herhangi bir yol olmaması durumunda, örneğin 100 100, veya 100 80çıktı 0.

Ayrıca girdiyi herhangi bir uygun ayırıcıyla dizi veya dize olarak da alabilirsiniz.

En kısa çözüm kazanır.


Bir dupe olabilir gibi görünüyor, eğer öyleyse üzgünüm - benzer bir soru bulamadı.
nicael

4
Cevabının sonsuz olması gereken girdiler ne olacak? Örneğin, ilk tamsayı negatif olan herhangi bir girdi, çünkü üç ile çarpıp orijinal sayıya geri artırabilir ve istediğiniz kadar tekrarlayabilirsiniz.
Peter Taylor

1
@Patrick: Gerçi mantıklı. -1'den başlayıp 0'a kadar, istediğiniz kadar başvurabilir *3 +2 +1, daha sonra +10'a ulaşmak için başvurabilirsiniz .
Deusovi

@Peter Fair yorumu, pozitif sayılarla sınırlı.
nicael

Yanıtlar:


1

Pyth - 26 24 bayt

Pyth'te girdileri yanlış sırada almasını sağlayan bir hata var gibi görünüyor, ama yine de önemli değil.

/m.vj;+sdzs^Lc3"+1+2*3"S

Test Takımı .

( 1 10çevrimiçi olarak zaman aşımına uğradı, ancak bilgisayarımda çalıştı).


Zaman aşımına uğradı, bu kadar küçük sayılarla? Huh.
nicael

@nicael evet, kontrol etmek için sadece 59K yolu var 10, ama pyth slooooooow
Maltysen

6

Javascript ES6, 45 44 bayt

f=(a,b=B)=>a<(B=b)?f(a+1)+f(a+2)+f(a*3):a==b

Örnek çalıştırmalar:

f(1,2)  -> 1
f(2,6)  -> 6
f(1 10) -> 84

1
Varsayılan parametrelerin ilginç kullanımı, kuşkusuz burada hiçbir bayt kaydetmez. =Bve (B=)( bbilerek atlanmıştır) 6 karakterdir ve alternatif ,b, aynı zamanda 6 karakter olan özyinelemeli çağrılara 3 kez geçmektedir . Her neyse, iyi iş çıkardın.
Patrick Roberts

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.