題組內容

三、

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

詳解 (共 2 筆)

Cuda Chen
Cuda Chen
詳解 #4215926
2020/08/12
void func(int i) {  ...
(共 217 字,隱藏中)
前往觀看
hchungw
hchungw
詳解 #6048549
2024/03/18
改寫為迭代版本的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的所有數字。如果你希望它也能處理零和負數,你可能需要添加額外的邏輯來確保函數正確地執行。