首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HangOver ACM问题!

HangOver ACM问题!
EN

Code Golf用户
提问于 2012-01-16 11:26:08
回答 1查看 984关注 0票数 4

只有一条规则:接受这个问题,http://acm.ut.ac.ir/sc/problemset/view/1032

要提交您的代码,您需要创建一个帐户(如果您不想这样做,只需在这里张贴您的代码,我将提交它)。到目前为止,最短的代码是用C编写的,长度为85个字符。

获胜者将是2012/02/01年度之前提交的最短C/C++代码。

注意:要检查提交的最短代码,您可以单击“接受运行”,然后单击“代码长度”。

正如elssar建议的那样,我在这里复制了这个问题:

你能把一堆卡片挂在桌子上有多远?如果您有一张卡,您可以创建一个最多超过半张卡的长度。(我们假设卡片必须与桌子垂直。)使用两张卡,您可以使上一张牌比下一张牌长半,下面一张牌比桌子高出一张牌长的三分之一,总悬置量为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)。下图说明了这一点。

Http://acm.ut.ac.ir/sc/assets/problem_图图像/1032_50ac13c53158fd843d1884e8afa962dd.jpg

输入

输入由一个或多个测试用例组成,后面跟着一行,其中包含指示输入结束的编号0.00。每个测试用例都是一行,其中包含一个正浮点数字c,其值至少为0.01,最多为5.20;c将包含精确的三位数。

输出

对于每个测试用例,输出达到至少c卡长度所需的最少卡数。使用示例中所示的确切输出格式。

样本输入

1.00

3.71

0.04

5.19

0.00

样本输出

3张牌(S)

61张卡(S)

1张牌(S)

273张卡(S)

EN

回答 1

Code Golf用户

发布于 2012-01-16 19:36:28

正如我说过的,到目前为止,有一个用C99写的85个字符的答案(注意,空格不算在内)。

代码语言:javascript
复制
main(i){for(float x;i=scanf("%f",&x),x;printf("%d card(s)\n",--i))for(;x>0;x-=1./++i);}

这是整个代码,希望它给你的想法如何优化它!

票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/4657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档