long x, y;
int p, count = 0;
cin >> x >> p >> y;
x *= 100;
y *= 100;
p += 100;
for (; x < y; x = x * p / 100) { ++count; }
cout << count;
Раз нельзя использовать дробные числа, значит надо всё считать в копейках.
Беспрекословный ЭкспертМыслитель (5795)
1 месяц назад
умножение на 100 и деление на 100 в цикле избыточно, если мы сразу работаем с целыми числами, а не с процентами. Это можно упростить, умножив вклад на (1 + p/100) и отбрасывая дробную часть каждый раз.
Кроме того, в коде используется бесконечный цикл for, что может сделать его немного менее очевидным для понимания. Мы можем использовать цикл while, чтобы сделать намерение цикла яснее.