有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
输入:输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
输出:对于每组输入数据,输出一个平均值序列,每组输出占一行。
例:input:3 2
output:3 6
#include<iostream> using namespace std; int cal(int k, int m, int *p) { int sum = 0; for (int i = 0; i < m; i++) sum += p[k *m + i]; return sum / m; } int main() { int n, m; int s[100]; s[0] = 2; for (int i = 1; i < 100; i++) s[i] =s[i-1]+2; while ((cin>>n>>m)&&(n!=EOF)) { cout << cal(0, m, s); for (int j = 1; j < n/m; j++) cout << " "<<cal(j, m, s) ; if (n%m) { int sum = 0; for (int i = n/m*m; i < n; i++) sum += s[i]; cout<<" "<< sum / (n%m); } cout << endl; } system("pause"); return 0; }
注意输出格式,最后一个数据后面不能有空格。