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

C 語言判斷回文數:整數反轉溢出風險,改用字符串對比

     編輯:程式設計疑難解答

原代碼問題

int x = 12345678987654321; // 超過 32 位有符號整數範圍 (2,147,483,647)
int y = 0, t = x;
while (t) { y = y*10 + t%10; t/=10; } // y 溢出,結果錯誤

解決方案:字符串處理

int isPalindrome(const char* s) {
    int len = strlen(s);
    for (int i=0, j=len-1; i

優勢

  • 無數值範圍限制,支持任意長度數字。
  • 邏輯簡單,時間複雜度 O(n),空間 O(1)。
  • 可直接處理前導零 (如 "01210")。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved