解题思路:

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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论