洛谷 P1307 数字反转

洛谷 P1307 数字反转

链接

https://www.luogu.org/problem/P1307

题目

题目描述
  给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

输入格式
  一个整数 NN

输出格式
  一个整数,表示反转后的新数。

输入输出样例
  输入 #1
  123
  输出 #1
  321
  输入 #2
  -380
  输出 #2
  -83
明/提示
  数据范围

  -1,000,000,000≤N≤1,000,000,000

  noip2011普及组第一题

思路

  思路清晰,先判断是否为负数,记录一下,之后反复取尾数,直到结束,输出。

  这题真的做过,不过上次是在LeetCode上面做的,用的java。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include<cmath>
#include<limits.h>
using namespace std;
int main()
{
int ans = 0;
int x;
cin >> x;
int num = abs(x);
int max = INT_MAX/10;
while(num>0)
{
int t = num % 10;
if(ans > max)
return 0;
ans = ans * 10 + t;

num = num / 10;
}
if(x>0)
cout << ans;
else
cout << -ans;
return 0;
}
---本文结束,感谢阅读---