POJ-1003 Hangover
题目链接:POJ-1003
题目大意:如果您有一张卡,则最多可以创建一半的卡长。(我们假设这些卡片必须垂直于桌子。)使用两张卡片,您可以使最上面的卡片悬垂在底部的卡片长度的一半,而最下面的卡片悬垂在桌面的卡片长度的三分之一,总最大悬垂为1/2 + 1/3 = 5/6卡长度。通常,您可以将n张卡片悬垂1/2 + 1/3 + 1/4 + … + 1 /(n +1)牌的长度,其中顶牌的第二张牌悬垂1/2,第二张的悬垂1/3悬垂,第三张的悬垂第四/第四悬垂1/4,依此类推,
解题思路:大水题,注意浮点数不精确就好了
代码块:
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
double f;
while(cin>>f){
if(f < 0.000001) return 0;
int cards = 1;
double sum = 0;
while(1){
sum += 1.0 / (cards + 1);
if(sum >= f) break;
cards++;
}
cout<<cards<<" "<<"card(s)"<<endl;
}
return 0;
}