题目链接
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式
一个整数 N
输出格式
一个整数,表示反转后的新数。
输入输出样例
输入 #1
123
输出 #1
321
输入 #2
-380
输出 #2
-83
思路:
将一个数各个数位上的数进行翻转,得到一个新数,注意如果是负数,反转之后的数还是负数,除非给定的原数为零,反转后最高位数字不应为零,具体操作见代码。
代码:
#include
#include
using namespace std;
int main()
{char s[15];cin >> s;int len &#61; strlen(s), flag &#61; 0;if(len &#61;&#61; 1) cout << s << endl;else if(s[0] !&#61; &#39;-&#39;){for(int i &#61; len - 1; i >&#61; 0; i--){if(flag &#61;&#61; 0 && s[i] &#61;&#61; &#39;0&#39;) continue;cout << s[i];flag &#61; 1;}}else if(s[0] &#61;&#61; &#39;-&#39;){cout << "-";for(int i &#61; len - 1; i > 0; i--){if(flag &#61;&#61; 0 && s[i] &#61;&#61; &#39;0&#39;) continue;cout << s[i];flag &#61; 1;}}return 0;
}