首先庆祝一下,今天连A了3题。感觉后面这题太简单了。。
由于英文不好 ,找了个翻译:
若将一叠卡片放在一张桌子的边缘,你能放多远?如果你有一张卡片,你最远能达到卡片长度的一半。(我们假定卡片都正放在桌子上。)如果你有两张卡片,你能使最上的一张卡片覆盖下面那张的1/2,底下的那张可以伸出桌面1/3的长度,即最远能达到 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)。下面有个图形的例子:
现在给定伸出长度C(0.00至5.20之间),输出至少需要多少张卡片。
一次AC没啥好说的,贴代码:
// 1003.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h" #include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main(int argc, char* argv[])
{
float len;
char input[];
while()
{
scanf("%s",input);
if(strcmp(input,"0.00")==)
break;
len=atof(input); float ftemp=;
int i=;
while ()
{
i++;
float t;
t=i;
ftemp=ftemp+/t;
if(ftemp>len)
break;
}
printf("%d card(s)\n",i-);
} return ;
}