import java.util.Scanner;
public class HDU_oj2015 {
/*
* 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数, 现在要求你按照顺序每m个数求出一个平均值,
* 如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列
*/
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
while (sn.hasNext()) {
int n = sn.nextInt();
int m = sn.nextInt();
int number = 0, sum = 0;
int x = 2; //x为数列的首项
//看共分为多少组
if (n % m != 0) {
number = (n / m) + 1;
} else {
number = n / m;
}
//存所有的平均数的数组
int[] s = new int[number];
//整除的情况
if (n % m == 0) {
for (int i = 0; i < number; i++) {
for (int j = 0; j < m; j++) {
sum += x;
x = x + 2;
}
s[i] = sum / m;
//最后的清零操作
sum = 0;
}
}
//无法整除的情况
else {
for (int i = 0; i < number; i++) {
//最后一组不足以有m个的情况
if (i == number - 1) {
for (int j = 0; j < (n % m); j++) {
sum += x;
x = x + 2;
}
s[i] = sum / (n % m);
}
//先执行的在这里
else {
for (int j = 0; j < m; j++) {
sum += x;
x = x + 2;
}
s[i] = sum / m;
}
//最后一定要清零操作
sum = 0;
}
}
// 最后的格式化输出
for (int i = 0; i < number; i++) {
if (i == number - 1)
System.out.println(s[i]);
else
System.out.print(s[i] + " ");
}
}
}
}
杭电oj —— 2015
猜你喜欢
转载自blog.csdn.net/LiLi_code/article/details/87645950
今日推荐
周排行