每天一道算法_2_求高精度幂

今天这个可能有点偷懒,学c++的时候就知道大数计算很复杂,现在一直用java,有幸有大数的方法可以用那么今天的算法就用java偷懒过去吧Description对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。 现在要你解决的问题是:对一个实数R( 0.0 n),其中n 是整数并且 0 InputT输入包括多组 R 和 n。

大家好,又见面了,我是全栈君。

今天这个可能有点偷懒,学c++的时候就知道大数计算很复杂,现在一直用java,有幸有大数的方法可以用

那么今天的算法就用java偷懒过去吧

Description

对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。  



现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(R
n),其中n 是整数并且 0 < n <= 25。

Input

T输入包括多组 R 和 n。 R 的值占第 1 到第 6 列,n 的值占第 8 和第 9 列。

Output

对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。

Sample Input & Sample Output

95.123 12
548815620517731830194541.899025343415715973535967221869852721
0.4321 20
.000000051485546410769561219945112767671548384817602007263512038354297630134624015.1234 15
43992025569.928573701266488041146654993318703707511666295476720493953024
6.7592  9
29448126.764121021618164430206909037173276672
98.999 10
90429072743629540498.107596019456651774561044010001
1.0100 12
1.126825030131969720661201

代码:

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

public class TheBigNumber {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while (in.hasNext()) {
			try {
				Double r = in.nextDouble();
				Integer n = in.nextInt();
				BigDecimal re = new BigDecimal(r.toString());
				String res = re.pow(n).stripTrailingZeros().toPlainString();
				if (res.startsWith("0"))
					res = res.substring(1, res.length());
				System.out.println(res);
			} catch (Exception e) {
			}
		}
	}
}

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121389.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于java的实验室管理系统_javaweb管理系统项目

    基于java的实验室管理系统_javaweb管理系统项目实验室设备管理系统主要包含两个用户角色,一个是超级管理员,可以进行系统的各种管理工作,一个是普通管理员,主要进入系统进行相应的信息查看工作。系统的主要功能包含有:登陆用户的信息修改,系统用户管理,使用设备的用户信息管理,实验设备管理,设备借出管理,设备维修管理,共建记录管理,实验室设备统计(图形报表的形式展示),注销退出,登陆系统。

    2022年8月31日
    1
  • codeforces#256DIV2 D题Multiplication Table

    codeforces#256DIV2 D题Multiplication Table

    2022年1月20日
    31
  • Windows Server2012 R2 无法安装.NET Framework 3.5的解决方法

    Windows Server2012 R2 无法安装.NET Framework 3.5的解决方法Windowsserver2012R2,自带的是.NETFramework4.5,如果想装SQLserver2008或者SQLserver2012就需要安装.ENTFramework3.5或者2.0的版本,建议安装.NET3.5版本,我本人亲测过,成功了!安装不成功错误分析:如果直接装SQLserver2008或者2012,就会报:无法安装一下功能.NETFr…

    2022年7月13日
    19
  • NSGA2算法MATLAB

    NSGA2算法MATLABNSGA2算法MATLAB实现(能够自定义优化函数)以前写了一个简单的NSGA2的算法能够用在ZDT1函数上:http://www.omegaxyz.com/2017/05/04/nsga2matlabzdt1/那个NSGA2的算法不具有普遍性,下面参考课国外的课题小组的代码重新修改了内部冗余内容,使之能够自定义优化函数。更多内容访问omegaxyz.comNSGA2的过程为:

    2022年5月12日
    37
  • 关于使用冒泡法_用冒泡法对5个数排序

    关于使用冒泡法_用冒泡法对5个数排序关于使用冒泡法publicclassMain{publicstaticvoidmain(Stringargs[]){intscore[]={89,-23,64,91,119,52,73};Mainm=newMain();m.printScore(score);}public

    2022年10月10日
    0
  • TP5与TP3.X对比

    TP5与TP3.X对比

    2021年10月12日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号