微信扫一扫

028-83195727 , 15928970361
business@forhy.com

【算法设计与分析】墓地雕塑

算法2016-06-30

【题目】



【输入输出】



【样例】



【源代码】

<span style="font-family:Microsoft YaHei;font-size:24px;">#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
    int n,m;//n个雕塑,现在加入m个雕塑
    double k,a=0,b;
    while(scanf("%d%d",&n,&m) == 2)
    {
      double ans=0;
      for(int i=1;i<n;i++)
      {
         double pos=(double)i*(n+m)/n;//计算每个需要移动的雕塑的坐标,设环的大小为n+m
         ans+=fabs(pos-floor(pos+0.5))/(n+m); //找出与之最近的那个点,并且将其归到1,求累积移动距离
      }
      k=ans*10000;//放大10000倍
     b=modf(k,&a);//判断输出的数是否有小数
     if(b==0)
        printf("%.1f\n",k);//有小数输出4为小数,否则输出一位
     else
        printf("%.4lf\n",k);

    }
    return 0;
}
</span>