1181: 零起点学算法88——偶数求和(C语言)
一、题目:
二、源代码:
#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;
}
三、注意:
- sum要清零
- 第9行的for循环括号中条件部分要加一条,避免超过n的大小
- k值要记得改变,即增加2
- 输出最后一个要换行
四、运行截图: