偶数求和
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
Input
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
Output
对于每组输入数据,输出一个平均值序列,每组输出占一行。
Sample Input
3 2
4 2
Sample Output
3 6
3 7
提交次数:2次
坑点:如果最后不足m个,则以实际数量求平均值,理解错题,题意:剩余的数求平均值而非所有数
#include<iostream>
using namespace std;
int main(){
int n,m;
int sum;
int cnt;
int total;
while(cin>>n>>m){
total=0;
int a[n],b[n];
for(int i=1;i<=n;i++){
a[i]=2*i;
total+=a[i];
}
sum=0;
cnt=0;
// for(int i=1;i<=n;i++)
// cout<<a[i]<<endl;
int kk;
for(kk=1;kk<=n;kk++){
sum+=a[kk];
if(kk%m==0){
// cout<<"s="<<sum<<endl;
b[cnt++]=sum/m;
sum=0;
}
}
// cout<<"k:"<<kk<<endl;
if(n%m!=0){ //剩余数求均值
b[cnt++]=sum/(n%m);
}
if(n!=0)
printf("%d",b[0]);
for(int i=1;i<cnt;i++)
printf(" %d",b[i]);
printf("\n");
}
return 0;
}