I - 偶数求和

有一个长度为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>
void main()
{
	int n,m;
	while(~scanf("%d%d",&n,&m))
	{
		int sum=0,count=0;//利用count 来控制空格
		int a=2,i;

		for(i=0;i<n;i++)
		{
			sum+=a;
			a+=2;
//现在开始对sum累加,直到满足m个数
			if((i+1)%m==0) 
			{
				count++;
			//如果不是第一个要输出的就输出一个空格	
            if(count!=1) printf(" ");

				printf("%d",sum/m);
				sum=0;
			}
		}
//如果正好n是m的倍数,就说明前面已经输出完了。
//直接输出换行就可以。
		if(n%m==0) printf("\n");
//如果n不是m的倍数,这个时候sum就是剩下数字的和,因为最后没有满m个所以sum没有被清零
//所以还要再输出一个空格+值+换行符。
		else printf(" %d\n",sum/(n%m));
	}
}

OK,AC

猜你喜欢

转载自blog.csdn.net/weixin_42324904/article/details/81149279