poj-1131-(大数)八进制转化成十进制

Description

Fractions in octal (base 8) notation can be expressed exactly in decimal notation. For example, 0.75 in octal is 0.953125 (7/8 + 5/64) in decimal. All octal numbers of n digits to the right of the octal point can be expressed in no more than 3n decimal digits to the right of the decimal point. Write a program to convert octal numerals between 0 and 1, inclusive, into equivalent decimal numerals.

Input

The input to your program will consist of octal numbers, one per line, to be converted. Each input number has the form 0.d1d2d3 ... dk, where the di are octal digits (0..7). There is no limit on k.

Output

Your output will consist of a sequence of lines of the form 0.d1d2d3 ... dk [8] = 0.D1D2D3 ... Dm [10] where the left side is the input (in octal), and the right hand side the decimal (base 10) equivalent. There must be no trailing zeros, i.e. Dm is not equal to 0.

Sample Input

0.75
0.0001
0.01234567

Sample Output

0.75 [8] = 0.953125 [10]
0.0001 [8] = 0.000244140625 [10]
0.01234567 [8] = 0.020408093929290771484375 [10]
import java.util.*;   //包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、
               //  国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、
                //日期Date类、堆栈Stack类、向量Vector类等

import java.math.*;               //包含大数的类型

import java.io.*;       //包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
public class Main{

public static void main(String[] args){

Scanner cin= new Scanner(System.in);

BigDecimal a=BigDecimal.valueOf(1),eight=BigDecimal.valueOf(8);;   //定义大数类型并且赋初值
String  str;
while(cin.hasNext())
{
        BigDecimal an=BigDecimal.valueOf(0);
        BigDecimal b=a.divide(eight);    //对大数的操作不能用简单的基本运算符,必须用函数操作
                        //add();subtract();multiply();divide();
                        //加减乘除计算函数
   str=cin.nextLine();            //大数是已字符串形式输入输出
   for(int i=2;i<str.length();i++)
   {
       an=an.add(b.multiply(new BigDecimal(str.charAt(i)-48)));  //str.charAt(i)————位置上的字符;
       b=b.divide(eight);
   }
System.out.println(str+" [8]"+" = "+an.toString()+" [10]");

}
}}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏dalaoyang

递归基础思想

1703
来自专栏python3

python3--类的组合,初始类的继承

圆环是由两个圆组成的,圆环的面积是外面圆的面积减去内部圆的面积。圆环的周长是内部圆的周长加上外部圆的周长

1372
来自专栏小詹同学

Leetcode打卡 | No.015 三数之和

欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!

1272
来自专栏落影的专栏

程序员进阶之算法练习(三十五)LeetCode专场

LeetCode上的题目是大公司面试常见的算法题,今天的目标是拿下5道算法题: 题目1是基于链表的大数加法,既考察基本数据结构的了解,又考察在处理加法过程中的边...

48916
来自专栏有趣的Python

算法与数据结构(三)高级排序算法:O(nlogn)的算法:归并排序&快速排序优化对比

O(nlogn)的算法 ? o(nlogn)比O(n^2)快多少 优化改进的算法要比笨的算法快太多。 归并排序:Merge Sort ? 把数组分成左右两半 ?...

6115
来自专栏SeanCheney的专栏

《利用Python进行数据分析·第2版》第7章 数据清洗和准备7.1 处理缺失数据7.2 数据转换7.3 字符串操作7.4 总结

在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换以及重塑。这些工作会占到分析师时间的80%或更多。有时,存储在文件和数据库中的数据的格式...

6029
来自专栏专知

关关的刷题日记12——Leetcode 189. Rotate Array 方法1、2、3

关小刷刷题12 – Leetcode 189. Rotate Array 方法1、2、3 题目 Rotate an array of n elements to...

3698
来自专栏算法channel

常用排序算法代码兑现

主要推送关于对算法的思考以及应用的消息。坚信学会如何思考一个算法比单纯地掌握100个知识点重要100倍。本着严谨和准确的态度,目标是撰写实用和启发性的文章,欢迎...

35511
来自专栏fangyangcoder

算法导论中的四种基本排序

                                                        by方阳

1222
来自专栏iOSDevLog

数据结构和算法

数据结构和算法是计算机科学中最重要的概念之一。如果您不熟悉计算机科学或编程,本文将为您提供有关数据结构和算法的概述。这也是Landscape系列的第二集。

1644

扫码关注云+社区

领取腾讯云代金券