經典教學範例:撰寫遞迴函數將任意正整數(如 12345)反序輸出為 54321。本文提供標準 C++ 實作、遞迴邏輯圖解,並說明為何不需字串操作即可完成。
#include <iostream>
using namespace std;
void printReversed(int n) {
if (n < 10) { // 基礎情況:個位數直接輸出
cout << n;
return;
}
cout << n % 10; // 先輸出個位數
printReversed(n / 10); // 遞迴處理剩餘高位
}
int main() {
int n = 12345;
printReversed(n); // 輸出:54321
cout << endl;
return 0;
}

圖中展示 printReversed(12345) 的呼叫堆疊:
printReversed(1234)printReversed(123)printReversed(12)printReversed(1)隨著堆疊展開,數字順序自然形成 54321。
if (n < 0) { cout << '-'; printReversed(-n); }。string reverseDigits(int n) {
if (n < 10) return to_string(n);
return to_string(n % 10) + reverseDigits(n / 10);
}
此版本方便單元測試與後續處理,體現「純函數」設計思維。
掌握「取模輸出個位 + 整除遞迴高位」模式,不僅能解決反序輸出,同樣適用於數位根計算、回文判斷、進位制轉換等經典遞迴題型。