加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

POJ 1607 Deck(n 块相同的木板重叠,最多能够伸出桌面多远 )

(2012-08-21 13:29:02)
标签:

poj

acm

基础题

物理题

it

分类: POJ基础题

题意:n 块相同的木板重叠,最多能够伸出桌面多远

分析:(来自网上,比较好的分析)就一物理题,没啥好多说的。输出格式还害我WA一次,无比蛋痛。

http://www.matrix67.com/blogimage_2011/2011060215.png1607 Deck(n 块相同的木板重叠,最多能够伸出桌面多远 )" />

 这是一个非常经典的问题。传统的答案是,把第一块木板的重心放在第二块木板的右边缘,把这两块木板的重心放在第三块木板的右边缘,把这三块木板的重心放在第四块木板的右边缘⋯⋯利用杠杆原理可以推出,如果每块木板都是单位长,那么 n 块木板可以伸出桌面 (1 + 1/2 + 1/3 + … + 1/n) / 2 个单位的长度。由调和级数的性质,我们立即可以得知,只要木板数量足够多,木块伸出桌面的长度是没有上界的,想伸出去多长就能伸出去多长。但同时,这个增长速度也非常缓慢⋯⋯ 20 块木板只能伸出大约 1.79887 个单位的长度, 1000 块木板也只能伸出大约 4.8938 个单位的长度。

http://www.matrix67.com/blogimage_2011/2011060216.png1607 Deck(n 块相同的木板重叠,最多能够伸出桌面多远 )" />

 

 

贴一下代码:

C++语言:
#include<iostream>
using namespace std;
int main()
{
   int card;
   float i;
   double overhang ;
   cout<<"Cards  Overhang"<<endl;
   while(cin>>card)
   {
       overhang = 0;
       for(i=1;i<=card;i=i+1)
       overhang += 1/i;
       overhang  = overhang/2;
       printf("]  %8.3f\n",card,overhang);
   }
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有