Problem Link:http://139.129.36.234/problem.php?cid=1015&pid=2
问题 C: 序列求平均
时间限制: 1 Sec 内存限制: 128 MB提交: 38 解决: 8
[ 提交][ 状态][ 讨论版]
题目描述
有一个长度为 n(n<=100)的数列, 该数列定义为从2开始的递增有序偶数, 现在要求你按照顺序每 m个数求出一个平均值, 如果最后不足 m个, 则以实际数量求平均值。编程输出该平均值序列。
输入
输入数据有多组, 每组占一行, 包含两个正整数 n和 m, n和 m的含义如上所述。
输出
对于每组输入数据, 输出一个平均值序列, 每组输出占一行。
样例输入
3 2
4 2
样例输出
3 6
3 7
AC code:
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<map>
#include<math.h>
#include<string.h>
#include<queue>
#include<vector>
#include<set>
#define LL long long
#define exp 1e-9
#define MAXN 1000010
using namespace std;
int a[110];
void init()
{
int i;
for(i=1;i<=100;i++)
{
a[i]=2*i;
}
}
int main( )
{
// freopen("D:\\in.txt","r",stdin);
int n,m,i,ans,sum,cnt,fg;
init();
while(scanf("%d%d",&n,&m)!=EOF)
{
sum=0;
cnt=0;
fg=0;
for(i=1;i<=n;i++)
{
sum+=a[i];
cnt++;
if(cnt==m)
{
if(fg==0)
{
printf("%d ",sum/m);
sum=0;
cnt=0;
fg=1;
}
else
{
printf("%d ",sum/m);
sum=0;
cnt=0;
}
}
}
if(cnt==0)
{
printf("\n");
}
else
{
printf("%d \n",sum/cnt);//此题输出格式较为奇葩。。。
}
}
return 0;
}