k = float(input())
s = float(input())
p= float(input())
i = 0
while k < s:
i += 1
k += (k / 100)*p
print(f'Через {i} месяцев! Вы получите сумму {k}')
Объяснение:
Вводим нужные числа.
И так, i = это у нас месяцы, которая по умолчанию равна 0.
while у нас заместо времени, каждая итерация while прибавляет к месяцам 1.
И так - каждый месяц мы увеличиваем наш капитал на p.
k += (k/100)*p - считаем проценты.
Насчёт += - это тоже самое, что написать k = k + (k/100) * p.
Условие цикла, цикл будет работать, пока наш капитал меньше нужной суммы.
Как только капитал становиться больше нужной суммы - while прекращает свою работу. И мы получаем через сколько месяцев наберём нужный капитал.
*f - format
#include <iostream>
typedef long long ll;
using namespace std;
bool ll_is_valid(ll t, ll N, ll x, ll y)
{
return t / x + (t - x) / y >= N;
}
ll f(ll N, ll x, ll y)
{
ll R = 1;
while (!ll_is_valid(R,N,x,y)) R *= 2;
ll L = R / 2;
while(R - L > 1)
{
ll M = (L + R) / 2;
if (!ll_is_valid(M,N,x,y)) {L = M;}
else {R = M;}
}
return R;
}
int main()
{
ll N,x,y;
cin >> N >> x >> y;
if(x > y) swap( x, y );
cout << f(N, x, y) << std::endl;
}