Ispirato da questo
Nella sfida collegata, ci viene chiesto di applicare l'aggiunta agli elementi dell'originale e al contrario dell'array di input. In questa sfida, la renderemo leggermente più difficile, introducendo le altre operazioni matematiche di base.
Dato un array di numeri interi, scorrere +, *, -, //, %, ^
, dove si //
trova la divisione di numeri interi ed ^
è esponente, mentre si applica al retro dell'array. Oppure, in altre parole, applicare una delle funzioni sopra a ciascun elemento di un array, con il secondo argomento che è il contrario dell'array, con la funzione applicata che scorre ciclicamente l'elenco sopra. Questo può essere ancora fonte di confusione, quindi facciamo un esempio.
Input: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Reverse: [9, 8, 7, 6, 5, 4, 3, 2, 1]
[ 1, 2, 3, 4, 5, 6, 7, 8, 9]
Operand: + * - / % ^ + * -
[ 9, 8, 7, 6, 5, 4, 3, 2, 1]
Result: [10, 16, -4, 0, 0, 1296, 10, 16, 8]
quindi l'output per [1, 2, 3, 4, 5, 6, 7, 8, 9]
sarebbe[10, 16, -4, 0, 0, 1296, 10, 16, 8]
Per coprire i casi angolari, l'ingresso non conterrà mai uno 0, ma può contenere qualsiasi altro numero intero nell'intervallo dall'infinito negativo all'infinito positivo. Se lo desideri, puoi inserire input come un elenco di stringhe che rappresentano le cifre.
Casi test
input => output
[1, 2, 3, 4, 5, 6, 7, 8, 9] => [10, 16, -4, 0, 0, 1296, 10, 16, 8]
[5, 3, 6, 1, 1] => [6, 3, 0, 0, 1]
[2, 1, 8] => [10, 1, 6]
[11, 4, -17, 15, 2, 361, 5, 28] => [39, 20, -378, 7, 2, 3.32948887119979e-44, 9, 308]
Questo è un code-golf quindi vince il codice più breve (in byte)!