this_number проходит через следующие изменения:
-> 3
-> 3 + [int (3/2) = 1] = 4
-> 4 + [int (4 /)2) = 2] = 6
-> 6 + [int (6/2) = 3] = 9
-> 9 + [int (9/2) = 4] = 13
После этого условие под циклом while нарушается, поэтому оно выходит из цикла.
Не могли бы вы конкретизировать, какую часть вы не поняли?У вас есть проблемы с циклами или следующей строкой:
this_number = that_number+this_number/2;