1.标题说明
的一个。
: x = 123, 321
: x = -123, -321
笔记:
输入是 32 位的。你的 0 时。
2.我的分析思路
我之前的想法是先判断数字是正数还是负数,然后取不同的分支。然后将数字转换为字符串c语言字符数组逆序输出,然后以相反的顺序输出字符串。
这个想法看起来不错,但是在实现的时候还是有一些问题。将字符串倒序输出,转换成char数组,然后倒序访问,放入新数组。然后将其连接成一个字符串,然后将该字符串转换为一个数字。
实现起来比较麻烦,但是没有想到其他好的实现方式。
3.其他想法
看了大家讨论的内容,发现了一个比较精妙的实现方法,现在分享给大家。
public static int reverse(int x) throws Exception { if (x > Integer.MAX_VALUE || x < Integer.MIN_VALUE) { return 0; } int revNum = 0; int digit = 0; // 关键也就是这三行的代码 while (x != 0) { digit = x % 10; revNum = digit + revNum * 10; x /= 10; } return revNum; }
可以在调试中查看该算法的细微之处。每次得到数字的个位数c语言字符数组逆序输出,然后将个位数乘以 10 后,加上新的个位数。这样就可以得到倒序输出的数字。
精彩的!精彩的!
文章来源:http://www.toutiao.com/a6461446555219001869/
感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
暂无评论内容