-->
当前位置:首页 > 题库 > 正文内容

编程题:h0008.卡片延伸长度

Luz3年前 (2022-02-19)题库551
您能使一叠在桌子上的卡片向桌子外伸出多远?如果是一张卡片,这张卡片向桌子外伸出卡片的一半长度。(卡片以直角伸出桌子。)如果有两张卡片,就让上面一张卡片向外伸出下面那张卡片的一半长度,而下面的那张卡片向桌子外伸出卡片的三分之一长度,所以两张卡片向桌子外延伸的总长度是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),如图所示。

![hangover.jpg](~/88719d4b-2248-445c-9c32-f6c11010b0e4.jpg)


### 输入格式:

输入由一个或多个测试用例组成,最后一行用0.00表示输入结束,每个测试用例一行,是一个3位数正浮点数c,最小值0.01,最大值5.20。

### 输出格式:

对每个测试数据c,输出要伸出卡片长度c所最少要用的卡片的数目,输出形式见样例输出。

### 输入样例:

in
1.00
3.71
0.04
5.19
0.00


### 输出样例:

out
3 card(s)
61 card(s)
1 card(s)
273 card(s)







答案:若无答案欢迎评论


![图片1.jpg.png](~/3fc2c001-71c8-42cc-895b-dab3cb281493.png)
初始时len[0]=0,通过结构为for(total=1; zero(len[total-1]-5.20)<0; total++) len[total]=len[total-1]+1.0/double(total+1)的循环,递推计算len序列。
在计算出len数组后,先输入第1个测试用例x,并进入结构为while (zero(x))的循环,每一次循环,使用二分法在len表中查找伸出卡片长度x所最少要用的卡片数,并输入下一个测试用例x。这个循环过程直至输入测试数据x=0 .00为止。

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。