问题标题: 酷町堂:1103   魅力镜片

0
0
已解决
王光裕
王光裕
资深光能
资深光能

1103   魅力镜片

题目描述 Description

由于聪聪一次性购买的书比较多,所以客气的书店老板免费赠送一块好玩的镜片给聪聪玩。一段时间以后,聪聪发现这块镜片真的不简单:只要我们随便在纸上写一个整数,经过这个镜片一照,组成这个整数的各位数字顺序就会反转,得到一个新数,当然,神奇的不仅是这些,镜片产生的新数依然符合整数的常见情形,即除非给定的整数为零,否则反转得到的新数最高位数字不能为0。 好奇的聪聪大胆猜测这个镜片中肯定有些智能化的东西。但是,这个东西到底是怎么实现的呢?聪聪想用计算机程序来模拟这一功能,于是,他就找到了擅长编程的你,请你帮助聪聪来解决这一问题。

输入描述 Input Description

输入共一行,一个整数N。

输出描述 Output Description

输出共一行,表示经镜片反转后得到的新数。

样例输入 Sample Input

 

【输入样例一】
123
【输入样例二】
-120

样例输出 Sample Output

 

【输出样例一】
321
【输出样例二】
-21

数据范围及提示 Data Size & Hint

【数据范围】
-1,000,000,000≤N≤1,000,000,000。

数据来源 Source

合肥市28届信息学竞赛第二题


1
已采纳
王梓澳
王梓澳
中级光能
中级光能

代码加注释:

while (n)              //判断n是不是0,是的话就说明取完了
{
    ans*=10;           //乘10是比如99,可以分为9*10+9
    int s=n%10;        //把他的个位求出来
    n/=10;             //然后n自己消除个位
    ans+=s;            
}

思路:

把n的每一位倒着求出来,然后加在一起,有0是可以消除的

温馨提示:

由于本题的数据很大,建议把所有变量定义成long long类型

0
0
我要回答