圆周率

前言

牛客网PAT乙级训练1026

题目描述

计算机大牛们都在拼算法,计算圆周率小数点后面的第n位。这涉及到许多除法,现在给你一个被除数和除数,请你计算小数点后n位的值。

输入描述

输入包含多组数据。每组数据包含三个正整数:被除数a和除数b(1≤a

输出描述

对应每组数据,输出a/b的结果,小数后面保留n位(不到n位的补零)。

输入例子

1 2 5
2 3 3

输出例子

0.50000
0.666

解决方案

其实很简单,使用Java内置的BigDecimal类很快就可以解决:

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int a = 0, b = 0, c = 0;
            a = scanner.nextInt();
            b = scanner.nextInt();
            c = scanner.nextInt();
            BigDecimal bd1=new BigDecimal(a);
            BigDecimal bd2=new BigDecimal(b);
            bd1=bd1.divide(bd2,c,BigDecimal.ROUND_FLOOR);
            System.out.println(bd1.toString());
        }
    }
}

其实本题的重点在于BigDecimal类的使用,详见我的这一篇博客:
BigDecimal类的使用方法详解

你可能感兴趣的:(圆周率)