首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

问一个算法,怎么将数字反转(使用数学方法,不能将它转换成字符或者字符串)

2012-11-04 
问一个算法,如何将数字反转(使用数学方法,不能将它转换成字符或者字符串)如56699778899887799665知道的

问一个算法,如何将数字反转(使用数学方法,不能将它转换成字符或者字符串)
如5669977889=>9887799665
知道的请告诉下,感谢~

[解决办法]
package test;

import java.math.BigDecimal;

public class Tt {

public static void main(String[] args) {

BigDecimal b = null;
String s = "";

BigDecimal big = new BigDecimal("5669977889");
String sBig = String.valueOf(big);
for (int i = sBig.length(); i > 0; i--) {
s += String.valueOf(sBig.charAt(i-1));
}
b = new BigDecimal(s);
System.out.println(b);
}
}
[解决办法]
方法很多:
long n = 5669977889L; // 注意数字的范围.
long result = 0;

while (n != 0) {
result = result * 10 + n % 10;
n /= 10;
}

还有一个很显明的特征, 就是这个题的要求很符合栈的特点, 所以用栈来做也不错.

热点排行