Edizione XV – Problema 3

Raddoppi

Si scriva un programma per macchina di Turing che, ricevuto in ingresso un numero intero, lasci sul nastro il doppio del numero indicato.

Nastro iniziale Nastro finale
3162
12
16513302
918

Diagramma di stato

  • Si porta sulla prima cifra a destra
  • Lo stato 2 raddoppia senza riporto
  • Lo stato R raddoppia con riporto, se le cifre finiscono scrive 1
(0, [0..9], 0, [0..9], >)Va destra
(0, -, 2, -, <)Si posiziona sulla cifra a destra
(2, 01234, 2, 02468, <)Senza riporto
(2, 56789, R, 02468, <)C’è un riporto
(2, - , H, -, >)Finito!
(R, 01234, 2, 13579, <)Senza riporto
(R, 56789, R, 13579, <)C’è un riporto
(R, - , H, 1, -)Finito con riporto di 1

Lascia un commento