黑马程序员技术交流社区

标题: ACM国际大学生程序设计竞赛 : 基础篇02 [打印本页]

作者: _J2EE_LiXiZhen    时间: 2017-11-5 22:39
标题: ACM国际大学生程序设计竞赛 : 基础篇02
题目大意:给出一个距离dis,表示堆在桌子上的扑克的伸出距离,问你至少需要多少张扑克能够堆出这个伸出距离。

  数理分析:其实这道题目的描述就是给出了我们的解题方法,它告诉我们n张扑克能够伸出的最远距离是∑1/i,i∈[2,i+1],这就使得问题变得简单了很多。但是这个问题的原始模型其实是基于长度为2、质量为1的扑克的条件,它其实是调和数的基本模型。

参考代码如下。
[C] 纯文本查看 复制代码
#include<cstdio> using namespace std;

int main()
{
     double dis;
     double temp,j;
     int i;
     while(scanf("%lf",&dis)!=EOF && dis != 0.00)
     {
                temp = 0;
              for(i = 2;;i++)
              {
                   j = (double)i;
                   temp += 1/j;
                      if(temp >= dis)
                           break;
              }

         printf("%d card(s)\n",i-1);

     }
}

作者: Oliverwqcwrw    时间: 2017-11-5 22:57
66666666666666666666666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2