T792544 【C1019】 - 至少需要多少张纸牌
题目描述
你能使一叠纸牌悬出桌子多远?
如果你有一张牌,你可以最大悬出半张牌的长度。(我们假设纸牌必须垂直于桌子。)有两张牌时,你可以使顶部的牌悬出纸牌的一半长度,而底部的牌悬出桌子的长度为一张牌的三分之一,因此总共最大悬出距离为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)。
如下图所示:

输入格式
第一行是1个正整数m,代表接下来会有m组测试数据
接下来m行,每行一个测试数据,一个正浮点数len,代表纸牌一共伸出去的长度
题目中的浮点数建议使用double类型存储和处理
输出格式
输出m行,每一行是对于每个测试用例len,输出达到至少要超过len的卡片长度所最少要用的卡片数目,具体的输出样式参考输入输出样例
提示:
注意是要超过纸牌伸出去的长度len,不包含纸牌伸出去的长度len,也就是需要的卡片的数目组成的长度要大于len,不包含等于len的情况
说明/提示
注意输出数据格式是:`数字 + 空格 + card(s)`字符串的样式,不要弄错了
**【输入输出样例说明】**
**【输入样例】**
第1行:4,代表接下来会有4组测试数据
第2行:1.00,代表纸牌一共伸出去的长度为1.00
第3行,第4行,第5行与第2行含义一致
**【输出样例】**
第1行,代表伸出长度超过1.00,最少需要的纸牌数是3,输出格式是:`3 card(s)`
其他的行以此类推
这里需要注意的是伸出的长度要超过1.00,也就是要大于1.00(不包含1.00的长度)所需要的纸牌数目
**【数据范围与提示】**
30%的数据:$1 \le m \le 100$,$0.01 \le len \le 5.20$
50%的数据:$1 \le m \le 1000$,$0.01 \le len \le 13.39$
100%的数据:$1 \le m \le 10000$,$0.01 \le len \le 13.39$
提示:
len为5.20时,需要的卡片的数量约为:276
len为13.39,需要的卡片的数量约为:997276