NC57: 反转数字
分析:coding之前,我们应该明确的几点。
1.什么是数字的反转?
这一点结合题意与测试用例已经很明确,不再赘述。
2.关于数据范围?
一个32为有符号整数:
不同语言对边界的处理不同,详见参考代码。
解法一:数学
思路:要将数字倒序进行展示,要做的就是获取到每一位上面的单个数字。方法很简单,将目标数字%10即可。
比如:对于数字123,按照如上思路可以这样写:
- 123 % 10-->3
- 12 % 10 -->2
- 1 % 10-->1
那么问题来了,怎么从让数字从百位降到十位,甚至其他位数呢?
有一个很简单的技巧,将目标数字/10即可(别忘了编程语言的除法特性)。
综合以上的作除与取模运算,可以得到:
Java参考代码
import java.util.*; public class Solution { /** * * @param x int整型 * @return int整型 */ public int reverse (int x) { long n=0; while (x!=0){ n = n*10+x%10; x = x/10; } //三元表达式并强转 return (int)n==n?(int)n:0;