Решение задачи Утренняя пробежка - 1 с Mccme

С пояснением   Просмотров: 117


В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 70% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров.


Код

#include <bits/stdc++.h>

using namespace std;

int main()

{
    double x, y, k = 1;
    cin >> x >> y;
    while(y - x > 0.000001 && x < y){
        x += 0.7 * x;
        ++k;
    }
    cout << k;
    return 0;
}

         

Администратор Photo Автор: Администратор


Код

x, y = map(float, input().split())
k = 1
while y - x > 0.000001 and x < y:
    x += 0.7 * x
    k += 1
print(k)

         

Администратор Photo Автор: Администратор


Увеличиваем x на 70% и увеличиваем c (переменная-счетчик, изначально она равна 1) на 1 до тех пор, пока x не станет больше либо равно начальному расстоянию, которое пробежал спортсмен.
Но так как числа заданы с точностью до шести знаков, а вещественная арифметика бывает, не точна, то до тех пор, пока x не станет большей, чем начальное расстояние, которое пробежал спортсмен или модуль((x-начальное расстояние, которое пробежал спортсмен)<0.00000001).
Нашим ответом и будет являться c.


Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться