【例题1】数字反转

【例题1】数字反转

题面

题目描述

给定一个整数,请将该数各个位上数字反转得到一个新数。

新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。

输入格式

输入共 \(1\) 行,一个整数 \(N\)

输出格式

输出共 \(1\) 行,一个整数,表示反转后的新数。

样例

样例输入

-380

样例输出

-83

数据范围与提示

对于 \(100\%\) 的数据,\(-10^9\leq N\leq 10^9\)

分析
  • 暴力模拟即可
Code
#include <bits/stdc++.h>
using namespace std;

string s;

int main(void) {
    cin >> s;
    if (s[0] == '-') {
        cout << "-";
        bool ok = 0;
        for (int i = s.size() - 1; i > 0; --i) {
            if (ok)
                cout << s[i];
            else {
                if (s[i] == '0')
                    continue;
                else
                    cout << s[i], ok = 1;
            }
        }
    } else {
        bool ok = 0;
        for (int i = s.size() - 1; i >= 0; --i) {
            if (ok)
                cout << s[i];
            else {
                if (s[i] == '0')
                    continue;
                else
                    cout << s[i], ok = 1;
            }
        }
    }
    return 0;
}
posted @ 2021-07-14 22:29  Juro  阅读(120)  评论(0编辑  收藏  举报