// 1. 通过字符串(最常用) BigInteger bigInt1 = new BigInteger("123456789012345678901234567890");// 2. 通过基本类型转换(使用valueOf静态方法) BigInteger bigInt3 = BigInteger.valueOf(100L); // 长整型
问题描述
小蓝最近在研究一种浮点数的表示方法:RR 格式。对于一个大于 0 的浮点数 dd,可以用 RR 格式的整数来表示。给定一个转换参数 nn,将浮点数转换为 RR 格式整数的做法是:
将浮点数乘以 2n2n;
四舍五入到最接近的整数。
输入格式
一行输入一个整数 nn 和一个浮点数 dd,分别表示转换参数,和待转换的浮点数。
输出格式
输出一行表示答案:dd 用 RR 格式表示出来的值。
样例输入
2 3.14样例输出
13样例说明
3.14×22=12.563.14×22=12.56,四舍五入后为 1313。
评测用例规模与约定
对于 50%50% 的评测用例:1≤n≤10,1≤1≤n≤10,1≤ 将 dd 视为字符串时的长度 ≤15≤15。
对于 100%100% 的评测用例:1≤n≤1000,1≤1≤n≤1000,1≤ 将 dd 视为字符串时的长度 ≤1024≤1024;保证 dd 是小数,即包含小数点。
import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Map; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); BigDecimal r = new BigDecimal(Math.pow(2 , n)); String s = sc.next(); BigDecimal str = new BigDecimal(s); BigDecimal res = r.multiply(str); BigDecimal ans = res.setScale(0 , RoundingMode.HALF_UP);大数四舍五入 System.out.println(ans); } }