給定一個整數,請將該數各位上數字反轉得到一個新數。 新數也應滿足整數的常見形式,即除非給定的原數為零,否則反轉後得到的新數的最高位數字不應為零。
範例測資
範例輸入 | 範例輸出 |
---|---|
EOF 輸入,每筆輸入共 1 行,一個整數 N。 | 輸出共 1 行,一個整數,表示反轉後的新數。 |
123 -380 | 321 -83 |
解題思路
收 N 的時候使用整數的型態收資料,並且判斷 N 是否為負數,設定一個布林值存是否為負數。如果 N 為負數,先將 N *= -1 將 N 變成正數。
將 N 轉換為字串後 reverse,並再轉換回整數型態,如果剛剛判斷 N 為負數,則需要乘以 -1。
範例程式碼-ZeroJudge A307: 數字反轉
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
int N;
while (cin >> N)
{
int negative = 1;
if (N < 0)
{
negative = -1;
N *= -1;
}
string str = to_string(N);
reverse(str.begin(), str.end());
int ans;
if (str.length() == 1) ans = int(str[0] - '0');
else ans = stoi(str);
ans *= negative;
cout << ans << "\n";
}
}
//ZeroJudge A307
//Dr. SeanXD