题目描述
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
输入格式
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
输出格式
对于每组输入数据,输出一个平均值序列,每组输出占一行
样例输入
复制
3 2
4 2
样例输出
复制
3 6
3 7
解题思路:
一次先找m个数字,然后n-=m,确定x,y,x为第m个数字中的第一个数字,y为最后一个数字,因为是等差数列,所以m个数的平均数就是他们两个的平均数
代码:
#include<iostream> #include<algorithm> using namespace std; int main() { ?? ?int n,m; ?? ?while(~scanf("%d%d",&n,&m)) ?? ?{ ?? ??? ?int t=2; ?? ??? ?while(n>=m) ?? ??? ?{ ?? ??? ??? ?int x=t; ?? ??? ??? ?int y=x+(m-1)*2; ?? ??? ??? ?int s=(x+y)/2; ?? ??? ??? ?cout<<s<<" "; ?? ??? ??? ?n-=m; ?? ??? ??? ?t=y+2; ?? ??? ?} ?? ??? ?if(n>0) ?? ??? ?{ ?? ??? ??? ?int x=t; ?? ??? ??? ?int y=x+(n-1)*2; ?? ??? ??? ?int s=(x+y)/2; ?? ??? ??? ?cout<<s; ?? ??? ?} ?? ??? ?cout<<endl; ?? ?} }
|