阿摩線上測驗 登入

申論題資訊

試卷:97年 - 097年專門職業及技術人員高等建築師、技師暨普通記帳士、97年第二次高等暨普通消防設備人員、普通不動產經紀人資訊技師#32446
科目:程式設計
年份:97年
排序:0

題組內容

三、

申論題內容

⑵上述 func 程式碼是以 recursive(遞迴)方式撰寫,請改成 iteration(疊代)方式。 (10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
改寫為迭代版本的func函數,我們可以使用迴圈而不是遞歸來反序列印一個整數的每一位數字。以下是一個實現示例:
cpp
Copy code
#include <iostream>
void func(int i) {
    while (i > 0) {
        std::cout << (i % 10) << std::endl; // 列印最後一位數字
        i /= 10;                            // 移除最後一位數字
    }
}
int main() {
    int n;
    // 假定這裏有代碼來初始化 n
    func(n);
    return 0;
}
這個迭代版本的func函數首先列印出整數i的最後一位數字,然後通過除以10來移除最後一位。它將這個過程重複進行,直到i減小到0為止。如果i是一個非負數,這段代碼將按照從最後一位到第一位的順序列印出i的所有數字。如果你希望它也能處理零和負數,你可能需要添加額外的邏輯來確保函數正確地執行。