首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C 語言經典演練:整數數字反轉的兩種實現方式

     編輯:關於C

方法一:迭代取餘法(易理解)

int reverse(int n) {
    int rev = 0;
    while (n != 0) {
        rev = rev * 10 + n % 10;
        n /= 10;
    }
    return rev;
}

逐位取最低位(n%10),累建結果(rev*10+digit),n/=10 右移。

方法二:模組化設計(面試常見變體)

int digits(int n) {
    int d = 0;
    for (; n; n/=10) d++;
    return d;
}

int pow10(int n) {
    int r = 1;
    while (n--) r *= 10;
    return r;
}

int reverse2(int n) {
    int d = digits(n);
    int rev = 0;
    for (int i=0; i

先算位數,再依位權重組合。邏輯清晰但效率較低(重複計算次方)。

邊界情況處理

  • 負數:可先記號、轉正處理、最後恢復號。
  • 溢位:反轉後超出 INT_MAX 需檢查或用 long long 中間儲存。
  • 尾隨零:1200 → 21,符合整數語意。

複雜度分析

方法時間空間備註
迭代取餘O(log₁₀ n)O(1)單遍歷,工程首選
位權重組O((log n)²)O(1)教學展示位數概念
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved