描述
你能让一叠卡片悬在桌子上多远?如果您有一张卡片,则可以创建半张卡片长度的最大悬垂。(我们假设卡片必须垂直于桌子。使用两张牌,您可以使顶部的牌悬垂下一张牌长度的半张,而底部的一张牌悬垂在桌子上一张牌长度的三分之一,总最大悬垂量为 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)。如下图所示。
输入
输入由一个或多个测试用例组成,后跟一行,其中包含表示输入结束的数字 0.00。每个测试用例都是包含正浮点数 c 的单行,其值至少为 0.01,最多为 5.20;c 将正好包含三位数字。
输出
对于每个测试用例,输出实现至少 c 卡长度的悬垂所需的最小卡数。使用示例中所示的确切输出格式。
分析:总的来说,就是一个累加问题嘛
代码实现:
#include <stdio.h>
int main()
{
double n;
scanf("%lf", &n);
while (n > 0.001)
{
double sum = 0;
int down = 2;
int i = 0;
while (sum < n)
{
sum += 1 / (double)down;
down += 1;
i++;
}
printf("%d card(s)\n", i);
scanf("%lf", &n);
}
return 0;
}