【算法设计与分析】墓地雕塑
算法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>