http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1242这个是SDUTOJ1242
http://acm.hdu.edu.cn/showproblem.php?pid=2015HDUOJ2015
题目描述
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
输入
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
输出
对于每组输入数据,输出一个平均值序列,每组输出占一行。
示例输入
3 2 4 2
示例输出
3 6
3 7
这个题是一个等差数列求平均值的题,只是这个求平均值方法不错,所以收藏一下,已开始写出来试了好多样例都过,但往SDUTOJ上一交就是PE,后来就去HDUOJ上交就对,一直没改出来,后来会神上来就试了一组数据1 2,结果就多输出了空格,才知道问题所在,最后判断取余是否为0的时候要再多加判断一下,才能保证空格不多输出
#include<stdio.h> int main() { int i, n, m, b, mark; while (scanf("%d%d", &n, &m) != EOF) { b = 2; mark = 1; for (i = 0 ; i < n / m ; i++) { if(mark == 1) { printf("%d",b+m-1) ; mark = 0 ; } else printf(" %d",b+m-1) ; b += m * 2; } if(n%m == 0) printf(" ") ; else if(n%m!=0&&mark) printf("%d ",b + n % m - 1); else printf(" %d ",b + n % m - 1); } return 0; }