描述
你能把一叠牌悬在桌子上多远?如果您有一张卡,则可以创建半个卡长度的最大悬垂。(我们假设这些卡必须垂直于表。使用两张牌,您可以使顶部的卡悬垂到底部的半张卡长度,而底部的卡牌悬在桌子上的三分之一,总最大悬垂量为1/2 + 1/3 = 5/6卡长度。一般来说,你可以通过1/2 + 1/3 + 1/4 + 使n张牌悬垂…+ 1/(n + 1)牌长度,其中顶部的卡悬起第二张1/2,第二张悬起的第三张1/3,第三张悬起的第四张1/4,依此类推,底部的牌悬悬1/(n + 1)。下图对此进行了说明。
输入
输入由一个或多个测试用例组成,后跟一行包含数字 0.00,该行表示输入的结束。每个测试用例都是一行,其中包含一个正浮点数c,其值至少为0.01,最多为5.20;c 将正好包含三位数字。
输出
对于每个测试用例,输出实现至少 c 卡长度的悬垂所需的最小卡数。使用示例中所示的确切输出格式。
样例输入
1.00
3.71
0.04
5.19
0.00
样例输出
3 card(s)
61 card(s)
1 card(s)
273 card(s)
#include<stdio.h>
int main(){
float t,i,n,l;
while((scanf("%f",&n))!=EOF&&n!=0.00){
l=0,i=0;
while(l<n){
i++;
l=1/(i+1)+l;
}
printf("%.0f card(s)",i);
printf("\n");
}
return 0;
}
这篇博客探讨了一个有趣的数学问题:如何通过堆叠纸牌来达到特定的最大悬垂长度。文章介绍了如何使用一系列纸牌,使得每张牌的悬垂部分逐渐减小,以实现总悬垂长度至少为给定数值c。通过迭代增加纸牌数量,直到总悬垂长度超过c为止。文章还提供了示例输入和输出,展示如何计算所需最少纸牌数。这是一个涉及数学优化和序列求和的问题。
835

被折叠的 条评论
为什么被折叠?



