阿摩線上測驗 登入

申論題資訊

試卷:109年 - 109 關務特考_四等_資訊處理:程式設計概要#86495
科目:程式設計
年份:109年
排序:0

題組內容

一、智慧型新社區內,住戶都擁有電動車,街道上有許多電動車停車格,停車格編號代表距離該街道起始點的整數距離(公尺),因此多個停車格可以有相同的編號。為了避免浪費,社區內要擴大其中一個停車格用來設立共用快速充電站。經過投票,充電站要設在最「中央」的位置,也就是離所有停車格平均距離最短的位置。

申論題內容

(三)請將該流程圖以有效率的 C/C++語言撰寫出來。(10 分)
5ed5f94ce27d9.jpg

詳解 (共 1 筆)

詳解 提供者:hchungw
這個流程圖表示了一個雙層循環結構,外層循環變數 i 從 0 開始,直到一個上限 N;內層循環變數 j 也是從 0 開始。在內層循環中,會對某個陣列 Parking 執行未知的計算和操作。最後,會有一個判斷條件來決定是否繼續循環或計算最終結果。
以下是基於流程圖的 C++ 程式碼示例:
cpp
Copy code
#include <iostream>
#include <vector>
int main() {
    int N;  // 停車格總數
    std::cin >> N;  // 從標準輸入讀取 N 的值
    std::vector<int> Parking(N, 0);  // 初始化一個大小為 N 的停車格編號陣列,初值為 0
    int sumDistance = 0;  // 初始化總距離
    int minDistance = INT_MAX;  // 初始化最小距離
    int minIndex = -1;  // 初始化最小距離的索引
    // 外層循環
    for (int i = 0; i < N; ++i) {
        int totalDistance = 0;  // 初始化當前停車格的總距離
        // 內層循環
        for (int j = 0; j < N; ++j) {
            // 假設這裡進行的操作是計算與其他停車格的距離差的絕對值
            totalDistance += std::abs(Parking[j] - Parking[i]);
        }
        // 更新總距離和最小距離
        if (totalDistance < minDistance) {
            minDistance = totalDistance;
            minIndex = i;
        }
    }
    // 輸出最中央的停車格編號
    std::cout << "The central parking spot is at index: " << minIndex << " with total distance: " << minDistance << std::endl;
    return 0;
}
這個程式碼只是基於流程圖的猜測,因為流程圖中的具體計算和操作沒有給出。例如,這裡我假設每次循環可能是在計算某個停車格到所有其他停車格的距離之和。