önsöz
Tanınmış şarkıcı Noel'de On İki Gün'de, anlatıcıya her gün birkaç hediye verilir. Şarkı kümülatiftir - her ayette, ondan önceki hediyeden daha yüksek bir miktarla yeni bir hediye eklenir. Bir Keklik, İki Kaplumbağa Güvercini, Üç Fransız Tavuk, vb.
Herhangi bir ayet anda, N , biz bularak şarkıda şu ana kadar hediye kümülatif toplamını hesaplayabilirsiniz v- inci tetrahedral numara sonuçları verir:
Verse 1: 1
Verse 2: 4
Verse 3: 10
Verse 4: 20
Verse 5: 35
Verse 6: 56
Verse 7: 84
Verse 8: 120
Verse 9: 165
Verse 10: 220
Verse 11: 286
Verse 12: 364
Örneğin, 4. ayetin ardından 4 * (1 keklik) , 3 * (2 kaplumbağa güvercini) , 2 * (3 Fransız tavuk) ve 1 * (4 çağıran kuş) yaşadık . Bunları toplayarak anlıyoruz 4(1) + 3(2) + 2(3) + 1(4) = 20
.
Meydan okuma
Göreviniz, 364 ≥ p ≥ 1 hediye sayısını temsil eden pozitif bir tamsayı verildiğinde , Noel'in hangi gün (ayet) olduğunu belirleyen bir program veya işlev yazmaktır .
Örneğin, eğer p = 286 ise , Noel'in 11. gününde. Ancak, eğer p = 287 ise , bir sonraki hediye yükü başladı, yani 12. gün.
Matematiksel olarak, bu sonraki tetrahedral sayıyı bulmak ve tüm tetrahedral sayı sırasındaki konumunu döndürmektir.
Kurallar:
- Bu kod golf , yani en kısa çözüm (bayt cinsinden) kazanır.
- Standart golf boşlukları geçerlidir.
- Günlere gelince, programınız 1 indeksli olmalıdır.
- Gönderiminiz tam bir program veya işlev olmalı - ancak snippet değil.
Test Kılıfları
1 -> 1
5 -> 3
75 -> 7
100 -> 8
220 -> 10
221 -> 11
364 -> 12
x=>{while(x>p)p+=r+=++i;return i}
eminim JavaScript gibi bir dilde kısaltılabilir.