Решение задачи "Карточки - 3 " с Acmp

Без пояснения   Просмотров: 19


Студент-первокурсник Антон никак не может понять странную формулу

1/2 + 1/3 + 1/4 + ... + 1/n + ... → бесконечность

Хорошо, что у Антона есть друг Васька, который отлично знает математику. Вот и придумал Васька, как Антошке объяснить эту самую бесконечность. Взял колоду карт и стал раскладывать карты на столе. Если есть одна карта, она нависает над столом на 1/2 длины карты. Если есть две карты, то верхняя нависает над нижней на 1/2 длины карты, а нижняя - нависает над столом на 1/3 длины. В итоге получается нависание 1/2+1/3=5/6. А если у нас есть N карт, то длина нависающей части уже 1/2+1/3+1/4+...+1/N.
И стал Васька с Антоном в такую игру играть: Антон называет какое-нибудь число, а Вася называет минимальное количество карт, которое нужно положить, чтобы длина нависающей части была бы не меньше этого числа.

Напишите программу, которая помогает Васе каждый раз давать правильный ответ.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    long double s = 0, x;
    cin >> x;
    if(x == 0){
        cout << 0 << " card(s)";
        return 0;
    }
    double i = 2;
    while(x > s){
        s+=1./i;
 
        ++i;
    }
    cout << i - 2 << " card(s)";
    return 0;
}

         

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


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

Комментарии

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