hdu_problem_2015_偶数求和

/*
*
*Problem Description
*有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
*
*
*Input
*输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
* 
*
*Output
*对于每组输入数据,输出一个平均值序列,每组输出占一行。
* 
*
*Sample Input
*3 2
*4 2
* 
*
*Sample Output
*3 6
*3 7
* 
*
*Author
*lcy
*
*
*Source
*C语言程序设计练习(三) 
* 
*
*Recommend
*lcy
*
*/
#include<iostream>
using namespace std;
int main() {
 int n, m, avg, num;
 while (cin >> n >> m) {
  avg = 0;
  num = 2;// 从2开始递增
  for (int i = 0; i < n / m; i++) {
   for (int j = 0; j < m; j++) {
    avg += num;
    num += 2;
   }
   if (i == n / m - 1) {
    if (n % m == 0) {
     printf("%d\n", avg / m);
     break;
    }
    else {
     printf("%d ", avg / m);
     break;
    }
   }
   printf("%d ", avg / m);
   avg = 0;
  }
  avg = 0;
  if (n % m == 0) continue;
  for (int i = 0; i < n - m * (n / m); i++) {
   avg += num;
   num += 2;
  }
  printf("%d\n", avg / (n - m * (n / m)));
 }
 system("pause");
 return 0;
}

猜你喜欢

转载自blog.csdn.net/CoderMaximum/article/details/86287425