本文主要是介绍Vijos P1756 数字反转【进制】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景
noip2011 NO.1
描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
格式
输入格式
输入共1 行,一个整数N。
输出格式
输出共1 行,一个整数,表示反转后的新数。
样例1
样例输入1
123
样例输出1
321
样例2
样例输入2
-380
样例输出2
-83
限制
1s
提示
【数据范围】
-1,000,000,000 ≤ N ≤ 1,000,000,000 。
来源
noip 2011
问题链接: Vijos P1756 数字反转
问题分析:
这个问题是一个进制计算问题。
一个数除以10的余数即为那个数的个位。不断取出个位和右移,并且将取出的个位重新拼装成一个整数即可。需要注意负数的情况,幸好负数的余数是负数。
程序说明:
(略)
题记:
进制是计算中绕不开的话题。
参考链接:(略)
AC的C++程序如下:
#include <iostream>using namespace std;const int BASE10 = 10;int reverse(int n)
{int ans = 0;while(n) {ans *= BASE10;ans += n % BASE10;n /= BASE10;}return ans;
}int main()
{int n;cin >> n;cout << reverse(n) << endl;return 0;
}
这篇关于Vijos P1756 数字反转【进制】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!