前言
牛客网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类的使用方法详解