1181: 零起点学算法88——偶数求和(C语言)

一、题目:

题目来源WUSTOJ

二、源代码:

#include<stdio.h>
int main() {
	int n, m, num, sum, i, j, k;
	while (scanf("%d%d", &n, &m) != EOF) {
		k = 2; // 表示偶数序列
		num = n / m + (n % m ? 1 : 0); // 平均值的个数,n%m不为0则num加1
		for (i = 0; i < num; i++) {
			sum = 0; // m个数的和
			for (j = 0; j < m && (i * m + j) < n; j++) { // 求m个数的和,不能超过偶数序列的长度
				sum += k;
				k += 2; // 序列值加2,表示偶数
			}
			printf("%d%c", sum / j, (i < num - 1 ? ' ' : '\n')); // 输出平均值,最后一个末尾换行
		}
	}
	return 0;
}

三、注意:

  1. sum要清零
  2. 第9行的for循环括号中条件部分要加一条,避免超过n的大小
  3. k值要记得改变,即增加2
  4. 输出最后一个要换行

四、运行截图:

运行截图

猜你喜欢

转载自blog.csdn.net/pfdvnah/article/details/86668102