解题思路:
1.先假设n正好是m的整数倍,即正好可以求出(n/m)个平均值;
2. 如果有剩下的数,最后再将剩下的数相加然后求平均数;
注意事项:
注意格式,注意设置一个变量来存放平均数加到哪了;
参考代码:
#include <iostream>
using namespace std;
int main()
{
int n,m;
while (cin>>n>>m)
{
if(n<1||m<1) break;
int t= 2; //设置变量存放平均数加到哪了,方便后面计算
for (int j = 0; j < n/m; ++j) //先不管能否剩下,直接把符合要求平均数(即每m个数求出一个平均值)输出出来
{
int sum ;
sum = 0;
for(int p = 0; p < m; p++) //将每一组数加起来
{
sum += t;
t +=2;
}
sum = sum/m;
cout << sum<<" ";
}
int a = n - m*(n/m); //a的含义是计算出剩下的数(a为零就代表没有剩下的数)
if(a != 0) //如果存在剩下的数,就把他们全部加起来再除以他们的个数
{
int sum = 0;
for(int i = 0; i<a; i++)
{
sum += t;
t += 2;
}
sum = sum/a;
cout << sum<<" ";
}
cout<<endl; //注意格式
}
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复