例题4 墓地雕塑
问题描述
在一个周长为10000的圆上等距分布着n个雕塑。现在又有m个新雕塑加入(位置可以随意放),
希望所有n+m个雕塑在圆周上均匀分布。这就需要移动其中一些原有的雕塑。要求n个雕塑移动的总距离尽量小。
输入格式
输入包含若干组数据。每组数据仅一行,包含两个整数n和m(2≤n≤1 000,1≤m ≤1 000),
即原始的雕塑数量和新加的雕塑数量。输入结束标志为文件结束符(EOF)。
输出格式
输出一个正整数,表示每袋核桃的数量。
样例输入1
2 1
2 3
3 1
10 10
样例输出1
1666.6667
1000.0
1666.6667
0.0
package train;
import java.util.Scanner;
//墓地雕塑
public class demo04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int n = sc.nextInt();
int m = sc.nextInt();
double ans = 0;
for (int i = 1; i < n; i++) {
double pos = (double)(m+n)/n*i;
ans = ans +Math.abs(Math.floor(pos+0.5)-pos);
}
System.out.printf("%.4f\n",ans*10000/(double)(n+m));
}
}
}