偶数求和
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 45797 Accepted Submission(s): 20016
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> int main() { int m,n,i,j,temp; int sum,a[100]; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) { a[i]=2+2*i; //初始换数组 } sum=0; temp=0; if(m>=n) //m>n的情况 { sum=0; for(i=0;i<n;i++) sum+=a[i]; printf("%d\n",sum/n); } else if(m<n) //n>m时分为两类 { if(n%m==0) //n能被m整除的情况 { for(j=1;j<=(n/m);j++) { sum=0; for(i=(j-1)*m;i<j*m;i++) { sum+=a[i]; } if(temp==0) //temp=0时输出第一组的平均值 { printf("%d",sum/m); temp++; } else //temp不等于0时,输出第一组后各组的平均值 printf(" %d",sum/m); } printf("\n"); } else if(n%m!=0) //n不能被m整除的情况 { for(j=1;j<=(n/m);j++) { sum=0; for(i=(j-1)*m;i<j*m;i++) { sum+=a[i]; } if(temp==0) { printf("%d",sum/m); temp++; } else printf(" %d",sum/m); } sum=0; for(i=m*(n/m);i<n;i++) //不足m个求平均值 sum+=a[i]; printf(" %d",sum/(n%m)); printf("\n"); } } } return 0; }