Il problema è interamente quello di formare un'ipotesi e testarla.
Quindi abbiamo 176517661768
. Ok. La prima ipotesi è che il primo numero sia lungo una cifra. Quello sarebbe un 1
. Ciò significa che mi aspetto che il prossimo numero sia un 2
o 3
(se il buco è un 2
). Lo verifichiamo.
-
1
- capito.
-
7
- non un 2 o un 3.
Ok, lascia perdere.
La seconda ipotesi è che il primo numero sia lungo due cifre. Quello sarebbe un 17
. Ciò significa che mi aspetto che il numero sia 18
o 19
.
-
17
- capito
-
65
- non 18 o 19.
Proviamo di nuovo. Potrebbe essere tre cifre a lungo. Ciò significherebbe 176
.
-
176
- capito
-
517
- non un 177 o 178.
Proviamo ancora questo. Potrebbe essere quattro cifre a lungo.
-
1765
- capito
-
1766
- sempre corrispondente all'ipotesi
-
1768
- sempre corrispondente all'ipotesi (e abbiamo un buco, mettilo da parte) ..
- ...
Capire come eseguire le sottostringhe appropriate o l'elaborazione del flusso è lasciato come esercizio al lettore per la lingua scelta. Questo probabilmente ricadrà nell'approccio in cui stai scrivendo un tipo di macchina a stati in cui stai solo andando avanti e testando per due possibili condizioni: il prossimo valore o il valore successivo più uno (e una volta trovata una situazione in cui hai accettato valore successivo più uno, tutti gli stati futuri hanno solo un test di accettazione - quello del valore successivo)