Open Judge 百练 1003 宿醉(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)。如下图所示。

 

输入

输入由一个或多个测试用例组成,后跟一行,其中包含表示输入结束的数字 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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值