编程题:h0008.卡片延伸长度
您能使一叠在桌子上的卡片向桌子外伸出多远?如果是一张卡片,这张卡片向桌子外伸出卡片的一半长度。(卡片以直角伸出桌子。)如果有两张卡片,就让上面一张卡片向外伸出下面那张卡片的一半长度,而下面的那张卡片向桌子外伸出卡片的三分之一长度,所以两张卡片向桌子外延伸的总长度是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表示输入结束,每个测试用例一行,是一个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)
答案:若无答案欢迎评论

初始时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为止。

### 输入格式:
输入由一个或多个测试用例组成,最后一行用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)
答案:若无答案欢迎评论

初始时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为止。