只有一条规则:接受这个问题,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)
发布于 2012-01-16 19:36:28
正如我说过的,到目前为止,有一个用C99写的85个字符的答案(注意,空格不算在内)。
main(i){for(float x;i=scanf("%f",&x),x;printf("%d card(s)\n",--i))for(;x>0;x-=1./++i);}这是整个代码,希望它给你的想法如何优化它!
https://codegolf.stackexchange.com/questions/4657
复制相似问题