原题链接:偶数求和
解题思路:将一段数字按照一定的长度进行分段,我们可以将其分为两部分:
1》出去最后一组之外的其他组,可以按照正常的求每组第一个数r,同时使用等差数列求和公式求总和,并除以每一组的长度m。
2》最后一组中,同样先求出数组首元素r,此时的数组长度为y,再进行就平均数sum。
注意事项:
参考代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int fun(int n,int m) { int s,y,r,sum,i; //s是拥有m个元素的段的个数,y最后一组数组的长度 s=n/m;y=n%m; for(i=1;i<=s;i++) { r=2*((i-1)*m+1); //r每段数组的首元素 sum=(m*(r+r+(m-1)*2))/(2*m); //sum每段元素的平均值 printf("%d ",sum); } if(y!=0) { r=2*(s*m+1); sum=(y*(r+r+(y-1)*2))/(2*y); printf("%d ",sum); } } int main() { int m,n; //n长度 m每段长度 while(scanf("%d%d",&n,&m)!=EOF) { fun(n,m); printf("\n"); } return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复