HDOJ 2015 偶数求和 解题报告

 

偶数求和

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 33607    Accepted Submission(s): 14534


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
 

 

Author
lcy
 
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a[101]={0,2,4};
 5     int b[101]={0};        //b[i]用来存输出的平均值数组
 6     int i, j, temp, n, m, flag;
 7     while(scanf("%d%d", &n, &m)!=EOF)
 8     {
 9         for(i=1;i<=n-1;i++)
10             a[i+1]=a[i]+2;      //确定数组a[]
11         for(i=1,j=1,temp=0;i<=n;i++)      //i,j分别控制a[],b[]连个数组
12         {
13             flag=0;        //用来标记
14             temp+=a[i];      
15             if(i>=m && i%m==0)    //求m个数平均值的条件
16             {
17                 b[j]=temp/m;
18                 j++;
19                 temp=0;
20             }
21             if(i==n && n%m!=0)    //求最后剩下的数的平均值,
22             {
23                 b[j]=temp/(n%m);
24                 flag=1;        //如果存在的话,标记为为1;
25             }
26 
27         }
28         for(i=1;i<n/m+1;i++)
29         {
30             if(i!=n/m) printf("%d ", b[i]);
31             else printf("%d", b[i]);
32         }
33         if(flag==1) printf(" %d",b[n/m+1]);    //输出最后多出来的数取得的平均值
34         printf("\n");
35     }
36     return 0;
37 }

 

posted @ 2013-05-08 22:23  Geekers  阅读(285)  评论(0编辑  收藏  举报