Problem Description
有一个长度为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>
int main()
{
int a, b;//a,b为题中的m,n
while (scanf("%d %d", &a, &b) != EOF)
{
int d = 0, c = 0, flag = 0;//flag判断是否应输出空格,d为各项和,在求解平均值后重置
for (int i = 1; i <= a; i++)
{
c += 2;
d += c;
if (i % b == 0)
{
flag++;
d /= b;
if (flag != 1)
printf(" ");
printf("%d", d);
d = 0;
}
}
if (a % b == 0)
printf("\n");//若b是a的倍数时换行
else
{
d = d / (a % b);
printf(" %d\n", d);
}
}
return 0;
}
在完成本题时需注意当n是m的倍数时的情况,在使用本文提供的方法时最后的printf(" %d\n", d);输出前需加空格键以与上次输出的数据隔开,满足题目输出条件需求。