链接: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 #include2 #include 3 #include 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 }