DOTCPP:有关1159心得

41 篇文章 3 订阅
37 篇文章 3 订阅

题目描述

有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。

输入

输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。

输出

对于每组输入数据,输出一个平均值序列,每组输出占一行

思路

起初我是想找规律的……根据第一个和最后一个数字……然后放弃了。
这道题常规做法是算出大概需要计算几次平均值,判断最后一次计算平均值时,数字有没有m个,每一次计算平均值时进行累加操作,从而求出平均值。

代码

#include<stdio.h>
int main()
{
 int n, m, num, count, i, j, sum, ave;
 while(scanf("%d %d", &n, &m) == 2)
 {
  count = n / m;
  num = 2;
  for(i = 0; i < count; i++)
  {
   sum = 0;
   for(j = 0; j < m; j++)
   {
    sum += num;
    num += 2;
   }
   ave = sum / m;
   printf("%d ", ave);
  }
  sum = 0;
  if(n % m != 0)
  {
   for(j = 0; j < (n % m); j++)
   {
    sum += num;
    num += 2;
   }
   ave = sum / (n % m);
   printf("%d\n", ave);
  }
  else
  {
   printf("\n");
  }
 }
 return 0; 
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值