题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2015
解决这个问题,关键是要解决给出一个偶数X,求出从它开始连续的m个偶数的和
而这个问题只要用等差数列求和公式就可以了。
从题目中可以看出,当这一组的第一个数是X时,下一组的第一个数就是 X + 2 * m
而从 X 开始连续 m 个偶数的和就是:
{ X + [ X + 2 × ( m - 1) ]} × m / 2 = (X + m - 1) × m;
所以平均数就是 X + m - 1
#include <stdio.h>
int main(void)
{
int i, n, m, b, c;
while (scanf("%d%d", &n, &m) != EOF)
{
b = 2;
c = 0;
for (i = 0 ; i < n / m ; i++)
{
printf(c++ ? " %d" : "%d", b + m - 1);
b += m * 2;
}
printf(n % m ? " %d\n" : "\n", b + n % m - 1);
}
return 0;
}