Questo è basato su un gioco che uno dei miei insegnanti di matematica giocava alle scuole medie. Scriverebbe 5 numeri casuali di una cifra sulla lavagna, quindi un numero casuale di due cifre. Proveremmo a creare un'equazione che utilizzava tutti e 5 i numeri di una cifra per produrre il numero di due cifre. Ecco alcuni esempi con soluzioni per spiegarlo meglio:
Input: Solution:
7 5 4 8 4 34 5*8-7+4/4 = 34
3 1 5 7 6 54 (7+3)*6-5-1 = 54
3 9 2 1 6 87 9*(2+1)*3+6 = 87
2 1 6 9 7 16 (9-7+6*1)*2 = 16
2 4 5 8 6 96 8*(5+6)+2*4 = 96
3 8 4 5 4 49 8*(4+4)-3*5 = 49
Questa sfida è quella di scrivere un programma in grado di generare tali equazioni per un dato input. L'input può essere fornito tramite la riga di comando o tramite un prompt. I 5 numeri a una cifra verranno sempre inseriti per primi (in nessun ordine particolare), seguiti dal numero a due cifre. Il programma quindi stamperà un'equazione della soluzione trovata; non è necessario gestire situazioni in cui non esiste soluzione. La funzione deve essere in grado di utilizzare le seguenti operazioni nell'equazione: addizione, sottrazione, moltiplicazione e divisione. Se desideri consentire ulteriori operazioni di base, va bene purché rimangano nello spirito della sfida (negazione, esponenziazione e modulo sarebbero delle belle aggiunte). L'ordine delle operazioni segue le regole matematiche standard, quindi saranno necessarie le parentesi per il raggruppamento.
I programmi verranno valutati in base alla lunghezza del codice (incluso lo spazio richiesto). Nota: la divisione deve essere esatta, non arrotondata o troncata al numero intero più vicino.