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)。 如下图所示: ![](https://cdn.luogu.com.cn/upload/image_hosting/6oh83v2p.png)

输入格式

第一行是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