Votre tâche consiste à analyser l'entrée et la sortie de la formule du n-ième terme s'il s'agit d'une séquence arithmétique, sinon il devrait afficher "NAAP".
Contribution
L'entrée (à partir de STDIN) se composera de quelques nombres, entre 4 et 10 nombres où chaque nombre sera compris entre -1000 et 1000 inclus, séparés par un délimiteur (un espace ou une virgule ou un point-virgule [selon le cas) votre préférence]). Voici quelques exemples d'entrées.
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 `;`)
Production
Le programme doit d'abord vérifier si l'entrée est une progression arithmétique ou non.
Progressions arithmétiques (AP) en bref: chaque AP aura une différence commune. Il s'agit de la différence entre les termes $ n $ et $ {n-1} $ th (essentiellement $ a (n + 1) - a (n) $ où a
est la fonction pour la séquence). Cette différence reste la même pour toute valeur de $ n $ dans un AP. S'il n'y a pas de différence commune, ce n'est pas une séquence arithmétique. Pour calculer la valeur du n-ième terme, utilisez cette formule $ a (n) = a (1) + (n-1) d $ où $ a (1) $ est le premier terme et $ d $ est le commun différence.
S'il ne s'agit pas d' une progression arithmétique, le programme doit afficher le message d'erreur "NAAP" (abréviation de "Not An Arithmetic Progression").
S'il s'agit d' une progression arithmétique, le programme doit imprimer le nième terme simplifié de la séquence dans STDOUT.
Exemple:
> 1,3,5,7,9
2n-1
Explication: Il s'agit d'un point d'accès car il existe une différence commune (3 $ - 1 = 2 $). Ensuite, vous utilisez la formule $ a (n) = a (1) + (n-1) d $
Par conséquent, la sortie est 2n-1
(notez l'absence d'espaces)
Les failles standard sont interdites par défaut.
Vous êtes autorisé à créer une fonction si vous le souhaitez (avec le tableau de nombres comme paramètre). Sinon, vous devez créer un programme complet qui prend les entrées sous forme de chaîne ou de tableau et sort en conséquence.
Cas de test:
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
sept.
-4,-5,-6,-7
-1n-3
C'est du code-golf donc le code le plus court en octets gagne! (désolé pour mauvais math-jax)
Toutes les suggestions sont les bienvenues!
0,0,0,0
et 3,1,-1,-3,-5
progressions arithmétiques? Si c'est le cas, je pense que ce seraient de bons cas de test, car ils ont cassé une méthode que j'essayais.