HDU2015偶数求和

此生再无相见时 提交于 2019-12-18 23:17:51

偶数求和

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

首先计算等差数列平均值的方法:第一个数的值加上最后一个数的值在除以2;
判断最后不足m个的方法:if(n%m != 0)
计算后面几个数平均值的方法也是第一个数的值加上最后一个数的值在除以2,找到最后剩余几个数的第一个数和最后一个数

#include <stdio.h>

int main() {
    int n,m;
    int x,y;
    int sum;
    int qian,hou;
    int kong = 0;
    while(scanf("%d%d",&n,&m) != EOF){
        x = 2;
        kong = 0;
        for(y = 0; y < n/m; y++){
            qian = x;
            hou = x + 2*(m-1);
            sum = qian + hou;
            x = hou + 2;
            if(kong > 0){
                printf(" ");
            }
            kong++;
            printf("%d",sum/2);
        }
        int last = n%m;
        if(n%m != 0){
            qian = x;
            hou = x + 2*(last-1);
            if(kong > 0){
                printf(" ");
            }
            kong++;
            printf("%d",(qian+hou)/2);
        }
        if(kong > 0){
            printf("\n");
        }
    } 
    return -1;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!