HDU Exponentiation 1063 Java大数题解

HDU Exponentiation 1063 Java大数题解

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

Exponentiation

Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6973    Accepted Submission(s): 1975




Problem Description
Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems. 

This problem requires that you write a program to compute the exact value of R
n where R is a real number ( 0.0 < R < 99.999 ) and n is an integer such that 0 < n <= 25. 

 


Input
The input will consist of a set of pairs of values for R and n. The R value will occupy columns 1 through 6, and the n value will be in columns 8 and 9.

 


Output
The output will consist of one line for each line of input giving the exact value of R^n. Leading zeros should be suppressed in the output. Insignificant trailing zeros must not be printed. Don’t print the decimal point if the result is an integer.

 


Sample Input
   
   
95.123 12 0.4321 20 5.1234 15 6.7592 9 98.999 10 1.0100 12

 


Sample Output
   
   
548815620517731830194541.899025343415715973535967221869852721 .00000005148554641076956121994511276767154838481760200726351203835429763013462401 43992025569.928573701266488041146654993318703707511666295476720493953024 29448126.764121021618164430206909037173276672 90429072743629540498.107596019456651774561044010001 1.126825030131969720661201

大数的题目使用Java就变得其简单无比。

主要就一句代码:

String ans = a.pow(b).stripTrailingZeros().toPlainString();

去零和转换为纯字符串输出。

这使用C++要数十行代码。

对照C++解法:http://blog.csdn.net/kenden23/article/details/23997827

相比之下。java就成了水题了。学不到什么东西。

import java.math.BigDecimal;
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext())
        {
            BigDecimal a = scan.nextBigDecimal();
            int b = scan.nextInt();
            String ans = a.pow(b).stripTrailingZeros().toPlainString();
            if (ans.startsWith("0")) ans = ans.substring(1);
            System.out.println(ans);
        }
        scan.close();
    }
}

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

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

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


相关推荐

  • acwing-167. 木棒(深搜dfs+减枝)「建议收藏」

    acwing-167. 木棒(深搜dfs+减枝)「建议收藏」乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 50 个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。输入格式输入包含多组数据,每组数据包括两行。第一行是一个不超过 64 的整数,表示砍断之后共有多少节木棍。第二行是截断以后,所得到的各节木棍的长度。在最后一组数据之后,是一个零。输出格式为每组数据,分别输出原始木棒的可能最小长度

    2022年8月9日
    8
  • drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明

    drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明按照本说明,你就可以成功的在Debian10(Buster)Linux服务器中安装好drupal8.8.0版本,已亲测能稳定运行。先决条件在开始安装之前,对安装的最低要求是:数据库服务器,如MySQL、MariaDB、PostgreSQL、Percona、SQLite等。Web服务器,如Nginx、Apache。PHP7.x,推荐>=7.2。至少1GB的磁盘空间。同时,要更新你的De…

    2022年7月20日
    17
  • python 2021 4月激活码【在线破解激活】

    python 2021 4月激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    63
  • 绿色简单的学校登录html页面

    效果预览:http://hovertree.com/texiao/css/22/代码如下:源码下载:http://hovertree.com/h/bjaf/l243x19a.htm转自:http:

    2021年12月22日
    57
  • 怎么升级linux的内核版本,升级linux内核版本[通俗易懂]

    怎么升级linux的内核版本,升级linux内核版本[通俗易懂]1、安装公钥sudorpm–importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org2、下载内核sudorpm-Uvhhttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm3、查看内核版本sudoyum-y–disablerepo=”*”–enabler…

    2022年8月23日
    8
  • java 发送邮件添加附件_java发送邮件 发送带附件的邮件详解[通俗易懂]

    java 发送邮件添加附件_java发送邮件 发送带附件的邮件详解[通俗易懂]importjava.io.File;importjava.util.Date;importjavax.activation.DataHandler;importjavax.activation.FileDataSource;importjavax.mail.Address;importjavax.mail.BodyPart;importjavax.mail.Message;impo…

    2022年5月14日
    38

发表回复

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

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