Problem Description
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
Input
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
Output
对于每组输入数据,输出一个平均值序列,每组输出占一行。
Sample Input
3 2 4 2
Sample Output
3 6 3 7
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,m,sum,k;
int a[110];
for(int i=0; i<n; i++)
a[i]=(i+1)*2;
while(cin>>n>>m)
{
sum=0;
int flag=0;
for(int i=0; i<n; i++)//从头到尾进行遍历
{
sum+=a[i];
if((i+1)%m==0)//当其是m的倍数的时候,进行重新归归零,并且输出
{
if(!flag)
{
cout<<sum/m;
flag=1;
}
else
cout<<" "<<sum/m;
sum=0;
k=i;
}
}
if(k<n-1)//当最后几个不足m个的时候
{
if(!flag)
cout<<sum/(n-1-k);
else cout<<" "<<sum/(n-1-k);
}
//printf("\n");
cout<<endl;
}
}