北大PKU在线测试1003
2015-04-21 17:09
211 查看
1003描述:你能在一张桌子上叠放多少张牌?如果你有一张牌,你可以悬的最大长度是另一张牌长度的一半。
(我们假设该牌必须垂直于桌子)有两张牌,你可以让顶部的一张牌悬在底部那张牌一半的长度位置处,而底部那张牌的三分之一悬在桌子外面,悬出的总长度为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代表结束输入。每个测试用例是单行的,而且是一个正的浮点数C,其值在0.01和5.20范围内。而且只能包含三个数字。
输出:对于每个测试用例,输出牌的数量是悬出的牌长满足C长度的最低数量。在用例中,使用精确的输出格式
样式输入:
(我们假设该牌必须垂直于桌子)有两张牌,你可以让顶部的一张牌悬在底部那张牌一半的长度位置处,而底部那张牌的三分之一悬在桌子外面,悬出的总长度为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代表结束输入。每个测试用例是单行的,而且是一个正的浮点数C,其值在0.01和5.20范围内。而且只能包含三个数字。
输出:对于每个测试用例,输出牌的数量是悬出的牌长满足C长度的最低数量。在用例中,使用精确的输出格式
样式输入:
1.00 3.71 0.04 5.19 0.00 样式输出:
3 card(s) 61 card(s) 1 card(s) 273 card(s)
程序代码:
#include<iostream> #include<math.h> using namespace std; int main(){ float tem; while(cin>>tem){ if(tem==0.00)break; int i,n=2; float sum=0.0; for(i=2;i<=n;i++){ sum+=1.0/float(i); if(sum>tem){ cout<<i-1<<" card(s)"<<endl; break; } else if(i==n) n++; } } return 0; }
这个程序看着英文介绍很可怕,但是只要理解了实在是太简单了,无非是一个循环,自己看代码和描述去理解吧!
相关文章推荐
- 北大PKU在线测试1000
- 北大PKU在线测试1009
- 北大PKU在线测试1011
- 北大PKU在线测试1012
- 北大PKU在线测试1013
- 北大PKU在线测试1002
- 北大PKU在线测试1001
- 北大PKU在线测试1004
- 北大PKU在线测试1005
- 北大PKU在线测试1007
- 北大PKU在线测试1008
- HDU 百度之星(测试赛)1003 - IP聚合
- 转载 - 5个在线的网站测试和验证工具
- 5个在线的网站测试和验证工具
- php类方法在线性能测试
- Web程序员福音:在线测试所有浏览器的兼容性
- 微软2014实习生及秋令营技术类职位在线测试-题目2 : K-th string
- 性能测试-如何测一个门户网站是否支持10万用户同时在线
- 12个免费在线的Web网站性能测试工具
- 12 个免费在线的 Web 网站性能测试工具