Lời nói đầu
Trong bài hát nổi tiếng, Mười hai ngày Giáng sinh , người kể chuyện được tặng một vài món quà mỗi ngày. Bài hát được tích lũy - trong mỗi câu, một món quà mới được thêm vào, với số lượng cao hơn một món quà trước nó. Một Partridge, Hai Rùa Rùa, Ba Gà mái Pháp, v.v.
Tại bất kỳ câu nào, N , chúng ta có thể tính tổng số quà tích lũy cho đến nay trong bài hát bằng cách tìm số tứ diện thứ N , cho kết quả:
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
Ví dụ: sau câu 4, chúng ta đã có 4 * (1 partridge) , 3 * (2 bồ câu rùa) , 2 * (3 con gà mái Pháp) và 1 * (4 con chim kêu) . Bằng cách tóm tắt những điều này, chúng tôi nhận được 4(1) + 3(2) + 2(3) + 1(4) = 20
.
Các thách thức
Nhiệm vụ của bạn là viết một chương trình hoặc hàm, với một số nguyên dương biểu thị số lượng quà tặng 364 ≥ p 1 , xác định ngày nào (câu thơ) của Giáng sinh.
Ví dụ: nếu p = 286 , chúng tôi đang ở vào ngày thứ 11 của Giáng sinh. Tuy nhiên, nếu p = 287 , thì lần tải quà tiếp theo đã bắt đầu, nghĩa là ngày thứ 12.
Về mặt toán học, đây là tìm số tứ diện tiếp theo và trả về vị trí của nó trong toàn bộ dãy số tứ diện.
Quy tắc:
- Đây là môn đánh gôn , vì vậy giải pháp ngắn nhất (tính bằng byte) sẽ thắng.
- Tiêu chuẩn chơi golf áp dụng.
- Khi đến ngày, chương trình của bạn phải được lập chỉ mục 1.
- Nội dung gửi của bạn phải là một chương trình đầy đủ hoặc một chức năng - nhưng không phải là một đoạn trích.
Các trường hợp thử nghiệm
1 -> 1
5 -> 3
75 -> 7
100 -> 8
220 -> 10
221 -> 11
364 -> 12
x=>{while(x>p)p+=r+=++i;return i}
, Tôi chắc chắn rằng nó có thể được rút ngắn bằng ngôn ngữ như JavaScript.