Haskell tiene esta característica ordenada (de aspecto) donde puede darle tres números y puede inferir una secuencia aritmética a partir de ellos. Por ejemplo, [1, 3..27]
es equivalente a [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27]
.
Eso es genial y todas las secuencias aritméticas son limitadas. Además, pfft . La multiplicación está donde está. ¿No sería más genial si hiciera secuencias geométricas como [1, 3..27]
regresar [1, 3, 9, 27]
?
Desafío
Escriba un programa / función que tome tres enteros positivos a , byc y produzca salidas donde x es el mayor entero ≤ c que se puede representar como donde n es un entero positivo.[a, b, b × (b ÷ a), b × (b ÷ a)2, ..., x]
b × (b ÷ a)n
Es decir, la salida debe ser r , de modo que:
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
Especificaciones
- Normas estándar de E / S se aplican .
- Las lagunas estándar están prohibidas .
- b siempre será divisible por a .
- a < b ≤ c
- Este desafío no se trata de encontrar el enfoque más corto en todos los idiomas, sino de encontrar el enfoque más corto en cada idioma .
- Su código se puntuará en bytes , generalmente en la codificación UTF-8, a menos que se especifique lo contrario.
- Las funciones integradas (Mathematica podría tener una: P) que calculan esta secuencia están permitidas, pero se recomienda incluir una solución que no se base en una función integrada.
- Se alientan las explicaciones, incluso para los idiomas "prácticos" .
Casos de prueba
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]
En algunos formatos mejores:
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