题目链接
http://115.28.203.224/problem.php?cid=1011&pid=2
题目描述
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
输入
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
输出
对于每组输入数据,输出一个平均值序列,每组输出占一行
样例输入
3 2
4 2
样例输出
3 6
3 7
代码
#include <iostream>
using namespace std;
int main() {
int m, n, i, line[100], s, j, h;
int aver1, aver2;
while (cin>>n>>m) {
line[0] = 2;
for (i = 1; i < n; i++) {
line[i] = line[i - 1] + 2;
}
h = n % m;
for (j = 0; j < n / m; j++) {
s = 0;
for (i = j * m; i < (j + 1) * m; i++) {
s = line[i] + s;
}
aver1 = s / m;
if (j == 0) {
cout<<aver1;
} else {
cout<<" "<<aver1;
}
}
if (h != 0) {
s = 0;
for (i = n - h; i < n; i++) {
s = s + line[i];
}
aver2 = s / h;
cout<<" "<<aver2;
}
cout<<endl;
}
return 0;
}