圆周率

前言

牛客网PAT乙级训练1026

题目描述

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

输入描述

输入包含多组数据。每组数据包含三个正整数:被除数a和除数b(1≤a<b≤100),以及精度n(1≤n≤1000)。

输出描述

对应每组数据,输出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类的使用方法详解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【提示】认真看完本文后,你将不再惊讶那些瞬间速记的“记忆大师”,而且知道提高记忆力的核心要点! 最关键的,你对记忆...
    精进熊阅读 5,743评论 1 2
  • 用串联联想法来进行圆周率记忆训练,记忆圆周率小数点后的数字当然记得越多越熟练就越好,但是,对大多数初学者来说,可以...
    Sting阅读 1,111评论 0 0
  • 生命是父母给的,虽然只有一次,也很短暂;但无比珍贵。每个人的生命都是独一无二的,要爱护它,珍惜它;要对自己负责...
    a3a1eedf828f阅读 235评论 0 0