嗨,大家好,我是KevinLee,一位正在轉職軟體工程師路上的遊戲技術美術。
我決定在這裡記錄每一個練習過的題目與實作內容,作為未來回顧與檢視的素材,也希望能透過整理與分享,加深自己對程式設計的理解。
如果內容中有任何可以改進或討論的地方,歡迎指教與交流,謝謝大家!
📅 2026/01/08
🏷️ C++、leetcode、while
✍️ KevinLee
🧩 Topic from "Zerojudge"
🎯 輸入任意數字,並將其數字全部倒轉
輸入說明: 輸入一行包含一個整數,且不超過2的31次方
輸出說明: 輸出翻轉過後的數字
補充說明: 前面有0的話應消除
範例輸入#1: 12345
範例輸出#1: 54321
/
範例輸入#2: 5050
範例輸入#2: 505
📜 邏輯紀錄
我認為這題的重點在於整數的逐位拆解與重新組合,雖然有想到用字串處理,但目前字串還沒有很熟悉,先用直覺想到的方式處理,未來熟悉字串後再回來補字串解法。
使用while迴圈依序從後面提取數字
1️⃣取出目前的個位數
num = 12345
num % 10 = 5
2️⃣將目前結果放到最前面
flipnum * 10 //為下一個數字預留空間
3️⃣依序剔除原數
num / 10
📝
當整數最後一位是0時,num % 10 會先取得 0,
但在後續flipnum * 10 + 0 的運算中,
這個0不會對最終結果造成影響,因此不會被保留下來。
#include<iostream>
using namespace std;
int main()
{
int num = 0;
int flipnum = 0;
cin >> num;
while (num > 0)
{
flipnum = flipnum * 10 + num % 10;
num = num / 10;
}
cout << flipnum << endl;
}