Hi I'm am having problems figuring out the logics behind finding the states in this question. If someone could explain how they got each state in this question I would be very grateful, and would help me get my head around the logic of generating this Finite State Automata.

Question:

Define an FSA (as a 5-tuple) that recognises the language of Decimal Fractions, which includes the decimal integers and all those strings in which the 'decimal point' symbol (".") is preceded by a decimal integer and followed by any non-empty string of decimal digits that does not end with 0. For example, 0, 12, 12.0, 43.001 are in the language, but 00, 01, 12., .01, 23.010 are not.

Thanks in advance!