Recursion Function or something different?

I would not recommend this for your stopping criteria. The text height is reduced for each line your loop might repeat thousands of times before the text reaches the bottom of the screen.

If we assume that the topmost line is numbered 1 and the text height for line 1 is th then the text height for any line is given by th/n where n is the line number.

So create a simple loop
If we that the height of the text in the topmost line is th

So a simple algorithm would be

initialize the cumulative vertical displacement (`cvd`) to zero
initialize the text height ('th') based on height for line 1
for n = 1 to numberOfLines
    calculate the text height for this line 'cth = th/n'
    calculate the vertical position 'cvd = cvd + cth'
    draw the text 'n' times at this height 'cth' and this y position 'cvd'
end for

text size

1 Like