正の整数Nを指定すると、次のアルゴリズムがNに到達するために必要なステップ数を返すことがタスクになります。
最小の三角数の検索T iのようにT I ≥Nを。対応するリストL = [1、2、...、i]を作成します。
Lの項の合計がNより大きい間、リストから最初の項を削除します。
Lの項の合計がNより小さい場合、iをインクリメントしてリストに追加します。ステップ2に進みます。
Nに到達するとすぐに停止します。最初のステップのみが体系的に実行されます。ステップ2と3はまったく処理されない場合があります。
例
以下はN = 11の例です。
したがって、N = 11の期待される出力は4ですです。
他の例:
- N = 5 - T 3 = 1 + 2 + 3 = 6で始まり、 2 + 3 = 5が続きます。期待される出力: 2。
- N = 10 -ためだけ最初のステップが必要とされる 10は三角数である: T 4 = 1 + 2 + 3 + = 10 4。期待される出力: 1。
最初の100個の値
下記のための結果である1≤N≤100:
1, 2, 1, 4, 2, 1, 2, 10, 2, 1, 4, 2, 6, 2, 1, 22, 8, 2, 10, 2,
1, 2, 12, 6, 2, 4, 2, 1, 16, 2, 18, 50, 2, 6, 2, 1, 22, 6, 2, 4,
26, 2, 28, 2, 1, 8, 30, 16, 2, 6, 4, 2, 36, 2, 1, 2, 4, 12, 40, 2,
42, 14, 2,108, 2, 1, 46, 2, 6, 4, 50, 2, 52, 18, 2, 4, 2, 1, 56, 12,
2, 20, 60, 4, 2, 22, 10, 2, 66, 2, 1, 4, 10, 24, 2, 40, 72, 8, 2, 6
ルール
- 完全なプログラムまたは関数を作成して、結果を出力または返すことができます。
- あなたがしている必要いかなる処理するために、N≤65536をミッドレンジのハードウェア上で1分未満で。
- 十分な時間があれば、プログラム/関数は、言語でネイティブにサポートされているNの値に対して理論的に機能するはずです。表示されない場合は、回答でその理由を説明してください。
- これはコードゴルフですので、バイト単位の最短回答が勝ちです!