Sua tarefa é analisar a entrada e gerar a fórmula para o n-ésimo termo, se for uma sequência aritmética, caso contrário, deverá imprimir "NAAP".
Entrada
A entrada (do STDIN) consistirá em poucos números, entre 4 e 10 números em que cada número estará no intervalo entre -1000 e 1000, inclusive, separados por um delimitador (um espaço ou vírgula ou ponto e vírgula [o que for sua preferencia]). Aqui estão alguns exemplos 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 `;`)
Resultado
O programa deve primeiro verificar se a entrada é uma progressão aritmética ou não.
Progressões aritméticas (PA) em poucas palavras: todo PA terá uma diferença comum. Essa é a diferença entre os termos $ n $ e $ {n-1} $ th (basicamente $ a (n + 1) - a (n) $, onde a
é a função da sequência). Essa diferença permanece a mesma para qualquer valor de $ n $ em um AP. Se não houver diferença comum, então é não uma sequência de aritmética. Para calcular o valor do n-ésimo termo, use esta fórmula $ a (n) = a (1) + (n-1) d $ em que $ a (1) $ é o primeiro termo e $ d $ é o comum diferença.
Se não for uma progressão aritmética, o programa deverá imprimir a mensagem de erro "NAAP" (abreviação de "Não é uma progressão aritmética").
Se for uma progressão aritmética, o programa deverá imprimir o n-ésimo termo simplificado da sequência em STDOUT.
Exemplo:
> 1,3,5,7,9
2n-1
Explicação: Este é um AP porque existe uma diferença comum ($ 3 - 1 = 2 $). Então você usa a fórmula $ a (n) = a (1) + (n-1) d $
Portanto, a saída é 2n-1
(observe a ausência de espaços)
As brechas padrão não são permitidas por padrão.
Você pode criar uma função se desejar (com a matriz de números como seu parâmetro). Caso contrário, você deve criar um programa completo que aceite a entrada como uma sequência de caracteres ou uma matriz e produza adequadamente.
Casos de teste:
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
Isso é código-golfe, então o código mais curto em bytes vence! (desculpe pelo mau math-jax)
Todas as sugestões são bem-vindas!
0,0,0,0
e 3,1,-1,-3,-5
progressões aritméticas? Nesse caso, acho que seriam bons casos de teste, pois quebraram um método que eu estava tentando.