Haskellには、この3つの数字を与えることができ、それらから算術シーケンスを推測できるこのすっきりした(-見える)機能があります。たとえば、[1, 3..27]
はと同等[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27]
です。
それはクールで、算術シーケンス以外はすべてかなり制限されています。また、pfft。乗算はどこにあるのか [1, 3..27]
戻るような幾何学的なシーケンスを実行した方がクールではないでしょう[1, 3, 9, 27]
か?
チャレンジ
書き込みプログラム/機能 3つの正の整数かかり、B、及びCと出力xは最大整数≤であるCとして表すことができるここでnは正の整数です。[a, b, b × (b ÷ a), b × (b ÷ a)2, ..., x]
b × (b ÷ a)n
つまり、出力はrである必要があります。
r0 = a
r1 = b
rn = b × (b ÷ a)n-1
rlast = greatest integer ≤ c that can be represented as b × (b ÷ a)n
where n is a positive integer
仕様書
- 標準のI / Oルールが 適用されます。
- 標準的な抜け穴は禁止されています。
- Bは常に割り切れるとなります。
- < B ≤ C
- この課題は、すべての言語で最短のアプローチを見つけることではなく、各言語で最短のアプローチを見つけることです。
- あなたのコードがされるバイト数で得点特に指定がない限り、通常はエンコーディングUTF-8で、。
- このシーケンスを計算する組み込み関数(Mathematicaは1つ:Pを持っているかもしれません)は許可されていますが、組み込みに依存しないソリューションを含めることをお勧めします。
- 「実用的な」言語であっても説明が奨励されます。
テストケース
a b c r
1 2 11 [1, 2, 4, 8]
2 6 100 [2, 6, 18, 54]
3 12 57 [3, 12, 48]
4 20 253 [4, 20, 100]
5 25 625 [5, 25, 125, 625]
6 42 42 [6, 42]
いくつかのより良い形式で:
1 2 11
2 6 100
3 12 57
4 20 253
5 25 625
6 42 42
1, 2, 11
2, 6, 100
3, 12, 57
4, 20, 253
5, 25, 625
6, 42, 42