hdu 2015 偶数求和

偶数求和

问题描述

有一个长度为n个(n <= 100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每米个数求出一个平均值,如果最后不足米个,则以实际数量求平均值。编程输出该平均值序列。

输入

输入数据有多组,每组占一行,包含两个正整数Ñ和M,N和米的含义如上所述。

输出

对于每组输入数据,输出一个平均值序列,每组输出占一行。

样本输入

 

3 2

4 2

样本输出

 

3 6

3 7

问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2015

问题分析:每m个数求平均值,若不够m个数,则输出最后一个数。定义一个数,赋值为2,count初始值为0,每m个数之后,count++,当count!=1时,输出空格。(在输出一个平均值之后)。当n不是m的倍数时,要输出最后一项。

注意:输出控制 各项间有间隔空格,行最后没有空格。

#include<stdio.h>
int main()
{
	int n,m;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		int sum=0,x=2,count=0,i;           //count初始化为0,x赋值为2,从2开始的递增有序偶数
		for(i=1;i<=n;i++)
		{
			sum+=x;                       
			x+=2;                        //递增有序偶数
			if(i%m==0)                   //每m个数输出一个平均值
			{
				count++;
				if(count!=1) 
					printf(" ");           //在输出平均值之后输出空格
				printf("%d",sum/m);
				sum=0;                     //清空求和项
			}
		}
		if(n%m==0)                        //如果n是m的倍数,最后一项已经通过平均值输出,换行
			printf("\n");
		else
			printf(" %d\n",sum/(n%m));   //否则,输出最后一项,换行
	}
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/qq_40967787/article/details/81074220