首页 > 其他分享 >求高精度幂

求高精度幂

时间:2022-11-01 11:32:11浏览次数:32  
标签:bg String 高精度 toPlainString 字符串 math BigDecimal


求高精度幂
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。 
现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(Rn),其中n 是整数并且 0 < =n <= 25。
输入
输入有多行,每行有两个数R和n,空格分开。R的数字位数不超过10位。
输出
对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。
样例输入
95.123 12
0.4321 20
5.1234 15
6.7592  9
98.999 10
1.0100 12
样例输出
548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001

1.126825030131969720661201


public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
BigDecimal dd=sc.nextBigDecimal();
int a=sc.nextInt();
//BigDecimal s=dd.pow(a).stripTrailingZeros();
String s=dd.pow(a).stripTrailingZeros().toPlainString();
while(s.startsWith("0")){
s=s.substring(1);
}
System.out.println(s);
}
}


第一次通过oj时候用的是toString方法,结果老是错误,后来用了toPlainString方法就顺利通过,再次补充一下这两个方法的区别。



对于  BigDecimal b ;     (b=(0.4321)^ 20)

String s = b.toPlainString() ;

System.out.println(s) ; 

输出为:

0.00000005148554641076956121994511276767154838481760200726351203835429763013462401



若String s = b.toString() ;

输出为:

5.148554641076956121994511276767154838481760200726351203835429763013462401E-8



Java.math.BigDecimal.toPlainString()方法实例

java.math.BigDecimal.toPlainString() 返回此BigDecimal的字符串表示形式不带指数字段。为具有正的精度值,中位数的小数点右边的数字用于指示精度。


对于具有零或负范围值,生成得到的字符串,好像将该值转换为具有零刻度一个数值上等于值仿佛零范围值的所有尾部零都出现在结果中。


' - '整个字符串是由一个减号字符的前缀(' u002D')如果非标度值小于零。如果非标度值为零或正数无符号字符作为前缀。


如果此方法的结果传递给构造函数的字符串,此BigDecimal的只有数值一定会被收回;新的BigDecimal表示可以具有不同的精度。


尤其是,如果此BigDecimal具有负的精度,从该方法中得到的字符串将有刻度的零点时由字符串构造处理。


声明


以下是java.math.BigDecimal.toPlainString()方法的声明


public String toPlainString()

参数


NA


返回值


此方法返回此BigDecimal的字符串表示形式不带指数字段。


异常


NA


例子


下面的例子显示math.BigDecimal.toPlainString()方法的用法


package com.yiibai;

import java.math.*;

public class BigDecimalDemo {

public static void main(String[] args) {

// create a BigDecimal object
BigDecimal bg;

// create a String object
String s;

MathContext mc = new MathContext(3); // 3 precision

bg = new BigDecimal("1234E+4",mc);

// assign the plain string value of bg to s
s = bg.toPlainString();

String str = "Plain string value of " + bg + " is " + s;

// print s value
System.out.println( str );
}
}



让我们编译和运行上面的程序,这将产生以下结果:


 Plain string value of 1.23E+7 is 12300000


标签:bg,String,高精度,toPlainString,字符串,math,BigDecimal
From: https://blog.51cto.com/u_13351110/5812940

相关文章

  • C++求高精度pi(2)高斯-勒让德算法
    C++分析参考目前求π的算法中哪种收敛最快?-知乎(zhihu.com)中@byoshovel答主的回答,有这些比较容易想到的方法对于我们的任务来说,拉马努金公式和加强鬼畜公式和BBP......
  • C++求高精度pi(1)BBP公式
    C++求高精度pi(1)前言(之后再写)BBP公式由arctan1展开得到的莱布尼茨级数是一个交错级数,并且条件收敛而不绝对收敛,这注定了莱布尼兹级数方法会非常低效而BBP公式$$\sum......
  • 高精度HighAccuracy_acwing.cpp
    ​​​ 文章:    力扣模板:字符串相加-字符串相加-力扣(LeetCode)    acwing模板:常用代码模板1——基础算法-AcWing 例题:        P100......
  • I Love Big Numbers !(高精度)
    题目链接题意:多组数据输入也就是C++中的:intn;while(cin>>n){代码块}对于每个数据输出其阶乘的各位上的数字之和。大眼一看,没有思路,那就百度把。百度解法......
  • POJ 2390 (小数高精度乘法)
    小数高精度乘法m*(1+r/100)^yProgramP2390;constmaxn=40000;F=10;typearr=recordd:array[1..maxn]oflongint;len,doc:longint;end;var......
  • POJ 3289(高精度乘法)
    高精度乘法ProgramP3289;constmaxn=40000;F=10;typearr=recordd:array[1..maxn]oflongint;len,doc:longint;end;varr,m:arr;y:long......
  • ZOJ 2529(不同进制的高精度&sstream)
    高精度a+b第i位的进制为第ith系数慢慢做吧……Important---:切记质数表一定要开大一些#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<ccty......
  • BZOJ 4807(車-高精度)
    Description众所周知,車是中国象棋中最厉害的一子之一,它能吃到同一行或同一列中的其他棋子。車跟車显然不能在一起打起来,于是rly一天又借来了许多许多的車在棋盘上摆了起......
  • 基于八方向的sobel算子高精度边缘提取检测算法matlab仿真
    目录一、理论基础1.1传统算法概述1.28方向sobel算法二、核心程序三、仿真测试结果作者ID:fpga和matlabCSDN主页:https://blog.csdn.net/ccsss22?type=blog擅长技术:1......
  • 高精度NTP网络时钟系统(NTP时间服务器)技术参数说明
    高精度NTP网络时钟系统(NTP时间服务器)技术参数说明高精度NTP网络时钟系统(NTP时间服务器)技术参数说明京准电子科技官微——ahjzsz简介京准电子科技有限公司研制开发的标......