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

偶數求和:C 語言分組累加與平均值計算實戰

     編輯:關於C

問題描述

輸入兩個整數 n 和 m,對前 n 個正偶數(2, 4, ..., 2n)進行分組求和:每 m 個數為一組,輸出每組的平均值(整數除法)。若最後一組不足 m 個,仍輸出其平均值。

演算法邏輯

程式使用單層迴圈遍歷偶數,維護計數器 k 與累加器 sum。每累積 m 個數即輸出平均值並歸零,迴圈結束後處理餘數組。

完整程式碼

#include <stdio.h>

int main() {
    int i, n, m, k, sum;

    while (scanf("%d %d", &n, &m) != EOF) {
        k = 0;
        sum = 0;

        for (i = 2; i <= 2 * n; i += 2) {
            sum += i;
            k++;
            if (k % m == 0) {
                printf("%d", sum / m);
                sum = 0;
                k = 0;
                if (i < 2 * n) printf(" ");
            }
        }
        if (sum) {
            printf("%d", sum / k);
        }
        printf("\n");
    }
    return 0;
}

關鍵細節

  • 輸入以 EOF 結束,支援多組測資
  • 組間以空格分隔,行末無多餘空格
  • 整數除法自動捨去小數部份

優化建議

可利用等差數列求和公式直接計算每組總和,將時間複雜度從 O(n) 降至 O(n/m),但對本題資料範圍影響不大。

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