POJ-1131 Octal Fractions【进制转换】

来源:互联网 发布:linux shell编程书籍 编辑:程序博客网 时间:2024/05/19 17:23

题目链接:http://poj.org/problem?id=1131

题目大意:

八进制小数转十进制小数。不能含有后导0


解题思路:

大数问题,JAVA果断水过。

去后导0的用地BigDecimal的stripTrailingZeros,然后使用toPlainString防止高精度数表示成科学计数法(意思就是转换成朴素的字符串)


代码如下:

import java.math.BigDecimal;import java.util.*;import java.math.*;import java.io.*;public class Main{public static void main(String[] args){String a;BigDecimal  eight = new BigDecimal(8);Scanner cin = new Scanner(System.in);while(cin.hasNext()){a = cin.nextLine();BigDecimal ans = new BigDecimal(0);BigDecimal temp = new BigDecimal(1);for(int i = 2; i < a.length(); ++i){temp = temp.divide(eight);ans = ans.add(new BigDecimal(a.charAt(i) - '0').multiply(temp));}System.out.println(a + " [8] = " + ans.stripTrailingZeros().toPlainString() + " [10]");}}}


原创粉丝点击