题目 1159: [偶数求和]

时间:2022-07-24
本文章向大家介绍题目 1159: [偶数求和],主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

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

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

思路:我们可以先用一个数组存下从1 ~ 100 的所有的等差数列。然后我们一个循环,每次是m的次数倍时我们将其输出求平均并且将sum数组归零。然后看是否满足n%m==0,满足则说明正好能取整数个,否则最后一个特殊处理即可。

#include<bits/stdc++.h>

using namespace std;

int a[100];

void init(){
	a[1] = 2;
	for(int i=2;i<=100;i++){
		a[i] = a[i-1] + 2;
	}
}


int main(){
	int n,m;
	init();
	while(cin>>n>>m){
		int sum = 0;
		for(int i=1;i<=n;i++){
			sum += a[i];
			if(i%m==0){
				cout<<sum/m<<" ";
				sum = 0;
			}
		}
	    if(n%m!=0)  cout<<sum/(n%m);	
		cout<<endl;
	}
	return 0;
}