Potresti averlo visto in Die Hard: With a Vengeance ... Questa domanda si basa sul famoso Jug Puzzle da 3 e 5 litri, ma con un'inclinazione leggermente diversa.
Aggancia un po 'di codice che, quando viene fornito un numero intero compreso tra 1 e 100, ti fornirà le istruzioni più rapide per misurare in un serbatoio, il numero corrispondente di litri d'acqua da una fontana, usando una brocca da 3 litri e una brocca da 5 litri.
Non ci sono gradazioni su nessuna delle brocche; la fontana è abbondante nella fornitura di acqua e si presume che il serbatoio sia svuotato all'inizio di ogni esecuzione del codice.
Non è possibile accedere all'acqua dal serbatoio una volta che entra nel serbatoio.
Il formato di esecuzione è il seguente:
Ingresso:
4 per esempio.
Produzione
Emettere ogni passo numerato, come mostrato, seguito da un conteggio dei volumi della brocca da 5 litri, della brocca da 3 litri e del serbatoio. Di seguito anche il formato Tally. Il numero di passaggi deve essere emesso anche alla fine dei passaggi.
1) Fill 5L jug
5L: 5, 3L: 0, T: 0
2) Pour from 5L jug into 3L jug
5L: 2, 3L: 3, T: 0
3) Empty 3L jug
5L: 2, 3L: 0, T: 0
4) Pour from 5L jug into 3L jug
5L: 0, 3L: 2, T: 0
5) Fill 5L jug
5L: 5, 3L: 2, T: 0
6) Pour from 5L jug into 3L jug
5L: 4, 3L: 3, T: 0
7) Pour from 5L jug into tank
5L: 0, 3L: 3, T: 4
Volume measured out in 7 turns
Esempio 2
Ingresso: 8
Produzione:
1) Fill 5L jug
5L: 5, 3L: 0, T: 0
2) Pour from 5L jug into tank
5L: 0, 3L: 0, T: 5
3) Fill 3L jug
5L: 0, 3L: 3, T: 5
4) Pour from 3L jug into tank
5L: 0, 3L: 0, T: 8
Volume measured out in 4 turns
Convegni
Fill xL jug- riempie la brocca associata in cima alla fontanaEmpty xL jug- svuota il contenuto della brocca associata nella fontanaPour from xL jug into yL jug- Versa il contenuto della caraffa xL nella caraffa yLPour from xL jug into tank- Versa il contenuto della caraffa xL nel serbatoio
Il codice più corto vince.