Nella mia classe di Economia, i miei amici e mi piace inventare modi per riorganizzare le cifre nel formato data (in MM / GG / AA) per creare un'equazione matematica valida. Per la maggior parte, ci è permesso usare addizione, sottrazione, moltiplicazione, divisione, parentesi ed esponenziazione oltre alla concatenazione.
Il tuo programma dovrebbe fare qualcosa di simile. Il programma dovrebbe importare la data corrente e inserire operatori per stampare un'espressione secondo le seguenti regole.
- Le cifre DEVONO essere utilizzate in ordine. La riorganizzazione delle cifre non è consentita.
- L'espressione risultante deve essere matematicamente accurata.
- È consentita l'aggiunta, la sottrazione, la moltiplicazione, la divisione, l'espiazione e l'uso delle parentesi. Così è la concatenazione di cifre. Tuttavia, non tutte le operazioni sono necessarie. Non è possibile utilizzare un segno di sottrazione per rendere una cifra negativa (come
-1+1+11=10
l'11 novembre 2010). - Il programma deve essere eseguito in 60 secondi su una macchina standard.
Ad esempio, questa sfida è stata scritta il 10 novembre 2015. Il programma lo interpreterebbe come l'11 / 10/15. Un output di esempio sarebbe (1+1)/10=1/5
.
bonus
Puoi moltiplicare il numero di byte nel tuo codice per 0,9 per ognuna delle seguenti opzioni supportate dal tuo programma.
- Il programma stampa tutte le possibili espressioni che possono essere formate, separate da nuove righe. Moltiplicare per un ulteriore 0,95 se le espressioni sono elencate in ordine crescente di simboli aggiuntivi.
- Il programma funziona anche per le date MM / GG / AAAA, stampando una possibilità con le prime due cifre dell'anno oltre alla possibilità senza. Se questo bonus è combinato con il primo bonus, devono essere stampate tutte le possibilità con le prime due cifre dell'anno.
- Il programma stampa anche un'equazione per quando ci sono più uguaglianze (ad esempio, l'11 novembre, 2011,
1=1=1=1=1=1
sarebbe stato stampato, oltre alle possibilità, come1*1=1=1=1=1
,1*1*1=1=1=1
e1*1*1*1=1=1
. Tutti questi casi devono essere stampati per il primo bonus da raggiungere. - Il programma supporta la conversione in basi tra 2 e 16. Si noti che se la base non è 10, tutti i numeri nell'espressione devono essere scritti nella stessa base e
(Base b)
devono essere scritti dopo l'espressione (con lab
sostituzione di conseguenza).
Questo è il golf del codice, quindi si applicano le regole standard. Vince il codice più breve in byte.