タグ付けされた質問 「collatz」

30
コードゴルフ:コラッツの推測
ロックされています。この質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答ややり取りは受け付けていません。 http://xkcd.com/710/に触発されて、ここにそのためのコードゴルフがあります。 挑戦 0より大きい正の整数を指定して、その数のヘイルストーンシーケンスを出力します。 ヘイルストーンシーケンス 詳細については、ウィキペディアを参照してください。 数が偶数の場合は、2で割ります。 数が奇数の場合は、3倍にして1つ追加します。 1に達するまで生成された数でこれを繰り返します(1の後も続く場合は、の無限ループに入ります1 -> 4 -> 2 -> 1...) 時々コードが説明する最良の方法なので、ここにウィキペディアからのいくつかがあります function collatz(n) show n if n > 1 if n is odd call collatz(3n + 1) else call collatz(n / 2) このコードは機能しますが、私は追加の課題を追加しています。プログラムはスタックオーバーフローに対して脆弱であってはなりません。したがって、反復または末尾再帰のいずれかを使用する必要があります。 また、大きな数を計算でき、言語にまだ実装されていない場合のボーナスポイント。(または、固定長整数を使用して大きな数のサポートを再実装する場合) テストケース Number: 21 Results: 21 -> 64 -> 32 -> 16 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.