洛谷 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 #include<iostream>
 2 #include<cmath>
 3 #include<limits.h>
 4 using namespace std;
 5 int main()
 6 {
 7     int ans = 0;
 8     int x;
 9     cin >> x;
10     int num = abs(x);
11     int max = INT_MAX/10;
12     while(num>0)
13     {
14         int t = num % 10;
15         if(ans > max)
16             return 0;
17         ans = ans * 10 + t;
18 
19         num = num / 10;
20     }
21     if(x>0)
22         cout << ans;
23     else
24         cout << -ans;
25     return 0;
26 } 
原文地址:https://www.cnblogs.com/blogxjc/p/11280355.html