J, 37 33 bytes
+^:(((=1#."."0)*:(e.".\.))":)^:_~
~ A = N
+^: ^:_ while(...)A+=N; return A
( ":) A to string
((( "."0) ) ) digits of A
((( 1#. ) ) ) sum
(((= ) ) ) equals N
(( (e.".\.)) ) N is one of the suffixes of A-string
(( *: ) ) not AND