解题思路:将一段数字按照一定的长度进行分段,我们可以将其分为两部分:
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语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:570 |
C语言训练-求函数值 (C语言代码)浏览:938 |
回文串 (C语言代码)浏览:2860 |
C语言训练-排序问题<1> (C语言代码)浏览:601 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:907 |
WU-格式化数据输出 (C++代码)浏览:1212 |
Tom数 (C语言代码)浏览:725 |
2^k进制数 (C语言描述,蓝桥杯)浏览:1420 |
淘淘的名单 (C语言代码)浏览:1228 |
A+B for Input-Output Practice (II) (C语言代码)浏览:601 |