Vijos P1756 数字反转【进制】

来源:互联网 发布:大学生淘宝兼职 编辑:程序博客网 时间:2024/06/02 06:11

背景

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;}






0 0