Su tarea es analizar la entrada y la salida de la fórmula para el enésimo término si es una secuencia aritmética, de lo contrario debería imprimir "NAAP".
Entrada
La entrada (de STDIN) consistirá en pocos números, entre 4 y 10 números, donde cada número estará en el rango entre -1000 y 1000 inclusive, separados por un delimitador (un espacio o una coma o un punto y coma [lo que sea tu preferencia]). Aquí hay algunos ejemplos de entradas.
12,14,16,18 //valid
-3 4 5 1 -2 -4 //valid
45;35;-35 //invalid (only three numbers are present instead of the minimum of 4 numbers)
2,32;21,321 //invalid (it uses two different delimiters: `,` and `;`)
Salida
El programa primero debe verificar si la entrada es una progresión aritmética o no.
En resumen, las progresiones aritméticas (AP): cada AP tendrá una diferencia común. Esta es la diferencia entre los términos $ n $ y $ {n-1} $ th (básicamente $ a (n + 1) - a (n) $ donde a
es la función para la secuencia). Esta diferencia se mantiene igual para cualquier valor de $ n $ en un AP. Si no hay una diferencia común, entonces es no una progresión aritmética. Para calcular el valor del enésimo término, use esta fórmula $ a (n) = a (1) + (n-1) d $ donde $ a (1) $ es el primer término y $ d $ es el común diferencia.
Si no es una progresión aritmética, entonces el programa debe imprimir el mensaje de error "NAAP" (abreviatura de "No es una progresión aritmética").
Si se trata de una progresión aritmética, el programa debe imprimir el enésimo término simplificado de la secuencia en STDOUT.
Ejemplo:
> 1,3,5,7,9
2n-1
Explicación: Este es un AP porque hay una diferencia común ($ 3 - 1 = 2 $). Luego usas la fórmula $ a (n) = a (1) + (n-1) d $
Por lo tanto, la salida es 2n-1
(observe la ausencia de espacios)
Las lagunas estándar no están permitidas por defecto.
Se le permite crear una función si lo desea (con la matriz de números como su parámetro). De lo contrario, debe crear un programa completo que tome la entrada como una cadena o una matriz y las salidas en consecuencia.
Casos de prueba:
1)
1,3,5,7,9
2n-1
2)
1 3 12312 7 9
NAAP
3)
-6;8;22;36;50
14n-20
4)
5,1,-3,-7,-11,-15
-4n+9
5)
-5,-7,-9,-11,-13,-15
-2n-3
6)
3,3,3,3,3,3,3,3,3
0n+3
7)
-4,-5,-6,-7
-1n-3
Este es el código de golf, por lo que gana el código más corto en bytes. (Perdón por las malas matemáticas-jax)
Cualquier sugerencia es bienvenida!
0,0,0,0
y 3,1,-1,-3,-5
progresiones aritméticas? Si es así, creo que serían buenos casos de prueba, ya que rompieron un método que estaba intentando.