Compito:
Al tuo programma viene data una frazione semplice , corretta , positiva nel formato .<numerator>/<denominator>
Per questo input, deve trovare due frazioni.
- Una frazione che è inferiore all'input.
- Una frazione che è maggiore dell'input.
Entrambe le frazioni devono avere un denominatore inferiore rispetto all'input. Di tutte le possibili frazioni, dovrebbero avere la differenza più bassa nell'input.
Produzione:
L'output del tuo programma deve essere:
- Una frazione che è più piccola dell'input, nel formato
<numerator>/<denominator>
. - Seguito da un carattere spazio (codice ASCII 32).
- Seguita da una frazione maggiore dell'input, nel formato
<numerator>/<denominator>
.
Come segue:
«fraction that is < input» «fraction that is > input»
Regole:
- Tutte le frazioni emesse devono essere nei termini più bassi .
- Tutte le frazioni emesse devono essere frazioni appropriate.
- Se non sono possibili frazioni appropriate consentite dalle regole, è necessario produrre
0
invece di una frazione <input e1
invece di una frazione> input. - È possibile scegliere se si desidera ricevere la frazione come argomento della riga di comando (ad esempio
yourprogram.exe 2/5
) o richiedere l'input dell'utente. - Puoi presumere che il tuo programma non riceverà input non validi.
- Vince il codice più breve (in byte, in qualsiasi lingua).
Qualsiasi argomento non standard della riga di comando (argomenti che normalmente non sono richiesti per eseguire uno script) conta per il conteggio totale dei caratteri.
Cosa non deve fare il tuo programma :
- Dipende da qualsiasi risorsa esterna.
- Dipende dall'avere un nome file specifico.
- Invia qualcosa di diverso da quello richiesto.
- Ci vuole molto tempo per correre. Se il tuo programma dura più di un minuto per le frazioni con un numeratore e un denominatore a 6 cifre (ad es.
179565/987657
) Sul computer di un utente domestico medio, non è valido. - Frazioni di output con
0
come denominatore. Non puoi dividere per zero. - Frazioni di output con
0
come numeratore. Il tuo programma deve generare0
invece di una frazione. - Ridurre una frazione immessa. Se la frazione indicata come input è riducibile, è necessario utilizzare la frazione così come viene immessa.
- Il tuo programma non deve essere scritto in un linguaggio di programmazione per il quale non esisteva un compilatore / interprete disponibile pubblicamente prima che questa sfida fosse pubblicata.
Esempi:
Ingresso: 2/5
Uscita: 1/3 1/2
Ingresso: 1/2
Uscita: 0 1
Ingresso: 5/9
Uscita: 1/2 4/7
Ingresso: 1/3
Uscita: 0 1/2
Ingresso: 2/4
Uscita: 1/3 2/3
Ingresso: 179565/987657
Uscita: 170496/937775 128779/708320
1/3 1/2
.