序文
よく知られているキャロル「クリスマスの十二日間」では、ナレーターに毎日いくつかのプレゼントが贈られます。歌は累積的です -各節で、新しいギフトが追加され、その前のギフトよりも1つ多くなります。1つのヤマウズラ、2つのカメの鳩、3つのフレンチヘンなど。
与えられた詩Nで、N番目の四面体の数を見つけることで、これまでの曲のプレゼントの累積和を計算できます。
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
たとえば、4節以降、4 *(1ヤマウズラ)、3 *(2カメの鳩)、2 *(3フランスの雌鶏)、1 *(4羽の鳥)がありました。これらを合計すると、が得られ4(1) + 3(2) + 2(3) + 1(4) = 20
ます。
チャレンジ
あなたの仕事は、プレゼントの数を表す整数正を与え、プログラムや関数の書き込みにある364≥P≥1を、それがクリスマスのどの日(詩)を決定します。
たとえば、p = 286の場合、クリスマスの11日目です。ただし、p = 287の場合、次のプレゼントのロードが開始されています。つまり、12日目です。
数学的には、これは次の四面体数を見つけ、四面体数のシーケンス全体での位置を返します。
ルール:
- これはcode-golfであるため、最短のソリューション(バイト単位)が優先されます。
- 標準的なゴルフの抜け穴が適用されます。
- 数日になると、プログラムには1インデックスが必要です。
- 提出は完全なプログラムまたは機能でなければなりません-スニペットではありません。
テストケース
1 -> 1
5 -> 3
75 -> 7
100 -> 8
220 -> 10
221 -> 11
364 -> 12
x=>{while(x>p)p+=r+=++i;return i}
、JavaScriptのような言語では短くすることができると確信しています。