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)