首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 遞歸實現非零數字反轉:去除尾部零的數字倒序輸出

     編輯:程式設計綜合問答

需求

輸入正整數,輸出其數字反轉後去除前導零的結果。如 321 → 123,1568 → 8651,1200 → 21。

遞歸算法


#include <iostream>
using namespace std;

void reversePrint(int x) {
    if (x == 0) return;
    cout << x % 10;       // 輸出最低位
    reversePrint(x / 10); // 遞歸處理高位
}

int main() {
    int n;
    cin >> n;
    reversePrint(n);
    cout << endl;
    return 0;
}

處理尾部零

上述代碼輸入 1200 會輸出 0021。若需去除前導零(即原數尾部零),可先去除尾部零再遞歸:


while (n % 10 == 0 && n != 0) n /= 10;
reversePrint(n);

最佳回答代碼


#include <iostream> using namespace std; void foo(int x) { if (x == 0) return; cout << x % 10; foo(x / 10); } int main() { int i = 123; foo(i); }
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved