输出的精妙实现方法,比较精妙的实现

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
喜欢就支持一下吧
点赞13 分享