Вход для вопроса: вход состоит из одного или нескольких контрольных примеров, за которыми следует строка, содержащая число 0,00, которое сигнализирует об окончании ввода.Каждый тестовый пример представляет собой одну строку, содержащую положительное число с плавающей запятой c, значение которого составляет не менее 0,01 и не более 5,20;c будет содержать ровно три цифры.
Вывод: для каждого тестового случая выведите минимальное количество карточек, необходимое для достижения вылета, по крайней мере, c длинами карточек.Используйте точный формат вывода, показанный в примерах.
Проблема: Как далеко вы можете сделать стопку карт над столом?Если у вас есть одна карта, вы можете создать максимальный свес половиной длины карты.(Мы предполагаем, что карты должны быть перпендикулярны столу.) С двумя картами вы можете сделать верхнюю карту нависающей над нижней на половину длины карты, а нижнюю - над таблицей на треть длины карты,для полного максимального свеса 1/2 + 1/3 = 5/6 длины карты.В общем случае вы можете сделать n выступов карт на 1/2 + 1/3 + 1/4 + ... + 1 / (n + 1) длины карт, где верхняя карта нависает над второй на 1/2, вторая нависаеттретья на 1/3, третья нависает над четвертой на 1/4 и т. д., а нижняя карта нависает над столом на 1 / (n + 1).
Ниже приведен мой код для другого отдельного ввода
#include<iostream>
using namespace std;
int main()
{
float desired{1.00},sum{0};
int denominator=2;
float num{1};
int total=0;
cin>>desired;
while(sum<=desired)
{
num=1.00/denominator;
sum+=num;
total+=1;
++denominator;
}
cout<<total<<"\n";
return 0;
}
Верхний код работает для всех вводов, включая 0,04, но код, который я написал для множественного ввода, который написан ниже, неработает 0,04 Почему ??
#include<iostream>
using namespace std;
int main()
{
float desired{1.00},sum{0};
int denominator=2;
float num{1};
int total=0;
while(1)
{
cin>>desired;
if(desired!=0 and desired<=5.20 and desired>=0.01)
{
while(sum<=desired)
{
num=1.00/denominator;
sum+=num;
total+=1;
++denominator;
}
cout<<total<<"\n";
}
else
exit(0);
}
return 0;
}