首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言實作:偶數序列分組求平均值

     編輯:關於C語言

問題描述

給定一個長度為 n(n <= 100)的數列,該數列由從 2 開始的遞增偶數構成(即 2, 4, 6, 8...)。要求按照順序,每 m 個數字計算一個平均值;若最後一組不足 m 個,則按實際數量計算平均。程序需輸出這組平均值序列。

輸入與輸出格式

  • 輸入:多組測試數據,每行包含兩個正整數 n 和 m。
  • 輸出:對應每組輸入,輸出一行平均值序列,數值之間以空格分隔。

範例

Sample Input
3 2
4 2

Sample Output
3 6
3 7

解題思路與代碼實現

核心邏輯是模擬數列生成與分組累加。使用變數 base 追蹤當前偶數值,left 記錄剩餘未處理的數字個數。每次循環處理一組(m 個或剩餘個數),累加求和後計算平均值並輸出。

C 語言參考代碼

#include <stdio.h>

int main(void) {
    int n, m, base, sum, left;
    while (scanf("%d %d", &n, &m) == 2) {
        base = 0;
        left = n;
        while (left > 0) {
            sum = 0;
            if (left >= m) {
                for (int j = 1; j <= m; j++) {
                    base += 2;
                    sum += base;
                }
                left -= m;
                if (left == 0)
                    printf("%d", sum / m);
                else
                    printf("%d ", sum / m);
            } else {
                for (int j = 1; j <= left; j++) {
                    base += 2;
                    sum += base;
                }
                printf("%d", sum / left);
                left = 0;
            }
        }
        printf("\n");
    }
    return 0;
}

此解法時間複雜度為 O(n),完全滿足題目約束條件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved