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<iostream>
using namespace std;
int main()
{
int n,m,i,b;
while(cin>>n>>m)
{
double s=0;//有初始值的变量定义应放在循环内以保证变量值在下一次循环时更新
int a=0,flag=1;
b=n;
for(i=0;i<n;i++)
{
s=s+i*2+2;//用s计每组总和
a++;//用a计每组的个数
if(a==m||a==b)//用b控制最后一组不足数据的计算
{
b=b-m;
s=s/a;
if(flag)//用flag控制最后一个空格不输出2 4 6 8 10 12 14 16 18 20
{
cout<<s;
flag=0;
}
else
cout<<' '<<s;
a=0;//更新a,s值
s=0;
}
if(i==(n-1))//保证最后一个数据后面输出换行
cout<<endl;
}
}
return 0;
}