Edizione IX – Problema 2

Numeri Trini

Un numero intero si dice trino se è divisibile per 3.
Se n è trino, n+1 si dice strino e n+2 distrino.

Si scriva un programma che, dato in input un numero decimale, lasci sul nastro una delle tre stringhe TRINO, STRINODISTRINO a seconda dei casi.

Nastro inizialeNastro finale
3TRINO
5DISTRINO
82STRINO
0TRINO

Diagramma di stato #1

ix0201

  1. A seconda della cifra letta passa attraverso gli stati 0, 10, 20
  2. Quando l’input finisce scrive la risposta corrispondente allo stato in cui si trova
(0,[0369],0 ,-,>)n Mod 3 = 0
(0,[147],10,-,>)
(0,[258],20,-,>)
(0,-,1,T,>)Scrive TRINO
(1,-,2,R,>)
(2,-,3,I,>)
(3,-,4,N,>)
(4,-,H,O,>)
(10,[0369],10,-,>)n Mod 3 = 1
(10,[147],20,-,>)
(10,[258],0 ,-,>)
(10,-,11,S,>)Scrive STRINO
(11,-,12,T,>)
(12,-,13,R,>)
(13,-,14,I,>)
(14,-,15,N,>)
(15,-,H ,O,>)
(20,[0369],20,-,>)n Mod 3 = 2
(20,[147],0 ,-,>)
(20,[258],10,-,>)
(20,-,21,B,>)Scrive DISTRINO
(21,-,22,I,>)
(22,-,23,S,>)
(23,-,24,T,>)
(24,-,25,R,>)
(25,-,26,I,>)
(26,-,27,N,>)
(27,-,H,O,>)

Diagramma di stato #2

ix0202

  • Come prima, ma scrive la risposta a pezzi DISTRINO per risparmiare stati e quintuple
(0,[0369],0,-,>)n Mod 3 = 0
(0,[147],10,-,>)
(0,[258],20,-,>)
(0,-,1,T,>)Scrive TRINO
(1,-,2,R,>)
(2,-,3,I,>)
(3,-,4,N,>)
(4,-,H,O,>)
(10,[0369],10,-,>)n Mod 3 = 1
(10,[147],20,-,>)
(10,[258],0,-,>)
(10,-,0,S,>)Scrive S-TRINO
(20,[0369],20,-,>)n Mod 3 = 2
(20,[147],0,-,>)
(20,[258],10,-,>)Scrive DI-S-TRINO
(20,-,21,D,>)
(21,-,10,I,>)

Lascia un commento