У Haskell есть эта аккуратная (выглядящая) особенность, где вы можете дать ему три числа, и он может вывести из них арифметическую последовательность. Например, [1, 3..27]
эквивалентно [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27]
.
Это круто, и все, кроме арифметических последовательностей, довольно ограничены. Сложение, пффф . Умножение там, где оно есть. Разве не было бы круче, если бы геометрические последовательности вроде [1, 3..27]
возврата [1, 3, 9, 27]
?
Вызов
Напишите программу / функцию, которая принимает три натуральных числа a , b и c и выводит, где x - наибольшее целое число ≤ c, которое можно представить как где[a, b, b × (b ÷ a), b × (b ÷ a)2, ..., x]
b × (b ÷ a)n
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
Характеристики
- Применяются стандартные правила ввода / вывода .
- Стандартные лазейки будут запрещены .
- б всегда будет делиться на а .
- a < b ≤ c
- Эта задача заключается не в том, чтобы найти кратчайший подход на всех языках, а в том, чтобы найти кратчайший подход на каждом языке .
- Ваш код будет оцениваться в байтах , обычно в кодировке UTF-8, если не указано иное.
- Разрешены встроенные функции (Mathematica может иметь одну: 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